1.对象的创建
可以在Java语言中使用new操作符调用构造方法创建对象。语法如下:
Test test=new Test();
Test test=new Test("a");
每个对象都是相对独立的,在内存中占据独立的内存地址,并且每个对象都具有自己的生命周期,当一个对象的生命周期结束时,对象就变成垃圾,由Java虚拟机自带的垃圾回收机制处理,不能再被使用。
2.访问对象的属性和行为
用户使用new操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。对象的属性和行为是通过类成员变量和成员方法的形式来表示的,所以当对象获取类成员时,也相应的获取了对象的属性和行为。示例代码如下:
package com.example;
public class TransferProperty {
int i=47;//定义成员变量
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 TransferProperty(){//定义构造方法
}
public static void main(String[] args){
TransferProperty t1=new TransferProperty();//创建一个对象
TransferProperty t2=new TransferProperty();//创建另一个对象
t2.i=60;//将类成员变量赋值为60
System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);//使用第一个对象调用类成员变量
t1.call();
System.out.println("第二个实例对象调用变量i的结果:"+t2.i);//使用第二个对象调用类成员变量
t1.call();
}
}
3.对象的引用
语法如下:
类名 对象引用名称
如一个Book类的引用可以使用以下代码:
Book book;
4.对象的比较
在Java语言中有两种对象的比较方式,分别为“==”和equals()方法。但这两种方式有着本质的区别,示例代码如下:
package com.example;
public class Compare {
public static void main(String args[]){
String c1=new String("abc");
String c2=new String("abc");
String c3=c1;
System.out.println("c2==c3的运算结果为:"+(c2==c3));
System.out.println("c2.equals(c3)的运算结果为:"+(c2.equals(c3)));
}
}
运行结果如下:
c2==c3的运算结果为:false
c2.equals(c3)的运算结果为:true
equals()方法是String类中的方法,它用于比较两个对象引用所指的内容是否相等;而“==”运算符比较的是两个对象引用的地址是否相等。
5.对象的销毁
每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被收回。在其他语言中需要手动回收废弃的对象,但是Java拥有一套完整的垃圾回收机制,用户不用担心废弃的对象占用内存,垃圾回收器将回收无用的但占用内存的资源。何种对象会被Java虚拟机视为垃圾?主要有以下2种:
(1)对象引用超过其作用范围,这个对象将被视为垃圾,如下图所示:
(2)将对象赋值为null,如图所示:
垃圾回收器只能回收那些由new操作符创建的对象,如果某些对象不是通过new操作符在内存中获取一块内存区域,这种对象可能不能被垃圾回收机制所识别,所以在Java中提供了一个finalize()方法。