本文主要介绍Java中类和对象的样例分析,具有一定的参考价值。有兴趣的朋友可以参考一下。希望你看完这篇文章后有很多收获。让边肖带你去了解一下。
类可以看成是创建Java对象的模板
1、类的定义
publicclassDog{
Stringname
intage
void eat(){ 0
}
void sleep(){ 0
}
}
2、类中变量的类型
局部变量:在方法或语句块中定义的变量称为局部变量。变量的声明和初始化都在方法中,方法结束后,变量会自动销毁。
成员变量(实例变量):成员变量是在方法体之外的类中定义的变量。这个变量在对象创建时被实例化。成员可以由特定类的类、构造函数和语句块中的方法访问。
类变量:类变量也在类中声明,在方法体之外,但是它们必须声明为静态类型。
00-1010构造函数的名称必须与类同名,一个类可以有多个构造函数。
创建对象时,至少调用一个构造函数。如果没有为该类显式定义构造函数,Java编译器将为该类提供默认构造函数。
publicclassDog{
public DoG(){ 0
System.out.println('构造狗');
}
}
3、构造方法
当您创建两个具有相同名称和不同参数列表(即不同数量或类型的参数)的方法时,您有一个重载的方法。
在运行时,JRE根据传递给它的参数来决定调用重载方法的哪个变体。
我们甚至可以在一个方法中调用另一个同名的重载方法。
当但要注意:使用过载方法时,
不能仅通过更改方法的返回类型来重载该方法。
不能有两个具有相同名称和相同参数列表的方法。
00-1010为了表示一个类继承自一个超类,我们可以在声明一个类时,在className之后添加extends。
例如:
public classemployeeextend person {
//员工从人员继承。
public EmplOyee(){ 0
super();
}
publicEmployee(Stringname,intage,in thing,intweight,
StringeyeColor,Stringender){ 0
super(姓名、年龄、身高、体重、eyeColor、性别);
}
}在构造函数中,调用super([args])来初始化父类。
4、重载方法
如果子类提供其父类中定义的方法的自己的实现,这被称为方法重写。
重写的形式类似于重载,但需要@Override。例如,当父类中有foo()方法时,我们可以在子类中覆盖它,如下所示:
@覆盖
public intfoo(){ 0
//T
ODO Auto-generated method stub
return super.foo();
}
【注】这段代码是使用 Eclipse 自动生成的,它只是调用了父类中的方法(super.foo()),没有任何改变,但实际中我们不会这么使用。
重写后,在类中直接使用 method()
调用重写后的函数,但我们任然可以通过 super.method()
调用父类中的(重写前的)方法。
6、创建对象
对象是根据类创建的。 创建对象需要以下三步:
-
声明:声明一个对象,包括对象名称和对象类型。
-
实例化:使用关键字
new
来创建一个对象。 -
初始化:使用
new
创建对象时,会调用构造方法初始化对象。
public class Dog { public static void main(String[] args) { Dog Dog0 = new Dog(); } }
7、访问实例变量和方法
-
访问实例的变量:实例名.变量名
-
调用实例的方法:实例名.方法名()
public class Dog { String name; int age; void eat(String food) { System.out.println(name + " is eating " + food + "."); } public Dog() { name = "Dog"; age = 0; System.out.println("构造():"); System.out.println(name + "\t" + age); } public Dog(String dogName, int dogAge) { name = dogName; age = dogAge; System.out.println("构造(name, age):"); System.out.println(name + "\t" + age); } public static void main(String[] args) { Dog Dog0 = new Dog(); Dog Dog1 = new Dog("FooBar", 3); // 访问变量 Dog0.name = "Ana"; System.out.println(Dog0.name); // 访问方法 Dog1.eat("cat"); } }
运行?上面代码将输出:
构造(): Dog 0 构造(name, age): FooBar 3 Ana FooBar is eating cat.
8、比较对象
Java 语言提供了两种比较对象的方法:
-
==
运算符 -
equals()
方法
8.1 使用 == 比较对象
==
语法比较对象是否相等,只有在 a
和 b
相等时,a == b
才返回 true
。
对于内置基本类型,需要它们的值相等。
对于对象,需要两个对象引用同一个对象实例。
例如:
import java.util.logging.Logger; public class Equals { public static void main(String[] args) { Logger l = Logger.getLogger("Test"); int i = 12, j = 12, k = 99; Integer a = new Integer(12); Integer b = a; Integer c = new Integer(12); l.info("i == j: " + (i == j)); l.info("i == k: " + (i == k)); l.info("a == b: " + (a == b)); l.info("a == c: " + (a == c)); } }
运行这段代码将得到如下结果:
i == j: true i == k: false a == b: true a == c: false
【注】若使用 a = Integer.valueOf(12); 与 c = Integer.valueOf(12); 分别得到 a 和 c,则 a == c 将是 true !
8.2 使用 equals() 比较对象
equals()
是每种 Java 语言对象都可以自由使用的方法,因为它被定义为 java.lang.Object
的一个实例方法(每个 Java 对象都继承该对象)。
调用 equals() 的方法如下:
a.equals(b);
此语句调用对象 a
的 equals()
方法,向它传递对象 b
的引用。
默认情况下,Java 程序使用 ==
语法检查两个对象是否相同。但是因为 equals()
是一种方法,所以它可以被重写。这样,对于任何对象,我们都可定义适合的 equals()
的含义。
【注】在重写 equals() 时,我们可以利用 object.hashCode()( to return a hash code value for the object.)
感谢你能够认真阅读完这篇文章,希望小编分享的“Java中类和对象的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/87906.html