java的对象是类的实例,一个类可以实例化创建许多对象。一个对象的生命周期:创建、使用和清除。
一、对象的创建
java提供了new运算符和构造方法用于创建对象,格式如下:
type objectName = constructor(...);
type 是对象的类型,即对象的类或接口。
objectName是对象名,即引用对象的变量。
constructor(...)用于初始化对象。
例如,有一个类如下:
class Myclass{
...
}
现声明一个类型为Myclass的对象:Myclass objectA;对象的声明并没有将其实例化,objectA的值为空值null。
下面用new加上构造方法Myclass()对objectA进行实例化和初始化:objectA = new Myclass();
声明、实例化可以用一句话完成:Myclass objectA = new Myclass();//专门用于初始化对象。
JAVA运行系统为每个类都提供了一个默认的构造方法,即没有参数的构造方法,可以调用超类的不带参数的构造方法。构造方法没有返回值的类型声明,其隐含的返回值类型为void。
构造方法的方法体与其他方法体类似,包括局部变量声明和其他语句。不过构造方法可以调用本类或超类的另一构造方法,在其调用语句在各语句之前。一般用this调用本类的其他构造方法,用super调用超类的构造方法。例如:
class Myclass{
int op1;
Myclass(int op2){
op1=op2;
}
}
该类中声明了一个带 参数op2的构造方法。声明子类Mysub如下:
class Myclass{
int op3;
Mysub(int op4);{ //声明了构造方法Mysub(int op4),必须用new运算符调用。
super(1); //调用超类的构造方法Mysub(int op2),并命令op2为1.
op3=op4;
}
}
声明构造方法时可以访问限制符来具体表明哪些对象可以创建本类的实例。private限制符表明没有其他类可以实例化本类,protected限制符表明只有本类的子类可以创建本类的实例,public限制符表明任何类都可以实例化本类。
二:对象的使用
创建了对象后就可以使用对象中的变量和方法,在访问限制的允许下,用点运算符” . “访问这些变量和方法。访问对象的变量又称为引用,访问的方式是在对象名后用点运算符连接需要访问的变量,即:objectReference.variable
objectReference 指对象的引用,可以是对象的名字,也可是是能够得到对象的引用的表达式。如有以下类:
class Myclass{
int op1;
}
若用“objectA = new Myclass();”创建一个对象,就可以用objectA.op1来引用变量op1;也可以不显示创建对象,直接用表达式new Myclass().op1来引用op1.
访问对象的方法同样是在对象名后用点运算符连接要访问的方法名:
objectReference.methodName(paramlist);//要在小括号内提供所需的参数,不需要参数的方法可以为空。
调用方法又称为消息,对接收该消息的对象产生结果。除void型外,方法都有返回值,就是该方法的执行结果;不同的参数会产生不同的结果,不同的接收对象也有不同的结果。
三:对象的清除
JAVA语言并不要求程序员显示式地清除不再需要的对象,程序员可以放心地创建对象,使用对象,JAVA运行系统自动判断对象是否在使用,用垃圾收集功能周期性地清除不再使用的对象,释放它们所占用的资源。
JAVA中有一个结束方法finalize(),是在清除对象时自动被调用的方法,程序员可以利用它做一些结束工作,如关闭曾经打开的文件等。