对象都是由类抽象出来的,对象可以操作类的属性和方法。
1.对象的创建
Java语言中使用new操作符调用构造方法来创建对象。
语法:
Test test = new Test(); //创建一个test对象
Test test = new Test("t");
特殊例子:
String str = "abc";
str也是一个对象,虽然代码中没使用new关键字实例化,但Java虚拟机在创建字符串的同时,也创建了字符串的匿名对象给str引用。
2.对象的引用
下例的book是Book类的一个对象,严格来说book应该是Book类对象的一个引用,真正的对象实体是new Book()。
3.对象的使用
当用户使用new创建了对象之后,可以使用对象.类成员来获取对象的属性和行为。对象的属性和行为在类中是通过类成员变量和成员方法的形式来表示的,所以当对象被实例化之后,也获得了相应的属性和行为。
来看代码例子:
public class Book {
int i = 20;
public void call(){
System.out.println("调用call方法");
for (i=0;i<3;i++){
System.out.println(i+ "");
if (i==2){
System.out.println("\n");
}
}
}
public static void main(String[] args){
Book t1 = new Book(); //创建第一个对象
Book t2 = new Book(); //创建第二个对象
t2.i=99;
//使用第一个对象调用类成员变量
System.out.println("第一个实例对象调用变量i的结果:" +t1.i++);
t1.call(); //使用第一个对象调用类成员方法
//使用第二个对象调用类成员变量
System.out.println("第二个实例对象调用变量i的结果:" +t2.i++);
t2.call();
}
}
结果:
第一个实例对象调用变量i的结果:20
调用call方法
0
1
2
第二个实例对象调用变量i的结果:99
调用call方法
0
1
2
由以上代码可以看出,两个对象的产生是相互独立的,改变t2的i值,并不会影响t1的i值。
4.对象的销毁
每个对象都有生命周期,当对象的生命周期结束时,分配给对象的内存地址将会被回收。在Java中有一套完整的垃圾回收机制,用户不用担心废弃的对象占用内存,垃圾回收器将回收无用但占用内存的资源。
垃圾回收器只能回收那些由new操作符创建的对象,非new操作符可能不会被垃圾回收回收机制所识别,Java中提供了finalize()方法来解决这个问题,
注意:垃圾回收或finalize()方法不保证一定会发生,如Java虚拟机内存消‘耗殆尽时,它是不会执行垃圾回收的。