Java new关键字详解
假如定义了一个表示日期的类,有三个整数变量;日、月和年的意义即由这些整数变量给出。如下所示:
class MyDate {
int day;
int month;
int year;
public String toString() {
int num=0;
return day+","+month+","+year;
}
}
名称 MyDate 按照类声明的大小写约定处理,而不是由语意要求来定。
在可以使用变量之前,实际内存必须被分配。这个工作是通过使用关键字 new 来实现的。如下所示:
MyDate myBirth;
myBirth = new MyDate()
第一个语句(声明)仅为引用分配了足够的空间,而第二个语句则通过调用对象的构造方法为构成 MyDate 的三个整数分配了空间。对象的赋值使变量 myBirth 重新正确地引用新的对象。
这两个操作被完成后,MyDate 对象的内容则可通过 myBirth 进行访问。关键字 new 意味着内存的分配和初始化,new 调用的方法就是类的构造方法。
假使定义任意一个 class XXXX,可以调用 new XXXX()来创建任意多的对象,对象之间是分隔的。就像有一个汽车的类,可以使用new 关键字创建多个具体的对象,比如有红旗的汽车、奇瑞的汽车、大众的汽车等等,它们都是独立的单元,相互之间是隔离的。
一个对象的引用可被存储在一个变量里,因而一个变量点成员(如 myBirth.day)可用来访问每个对象的单个成员。请注意在没有对象引用的情况下,仍有可能使用对象,这样的对象称作”匿名”对象。
使用一个语句同时为引用 myBirth 和由引用 myBirth 所指的对象分配空间也是可能的。
MyDate myBirth=new MyDate();
class MyDate {
int day;
int month;
int year;
public String toString() {
int num=0;
return day+","+month+","+year;
}
}
名称 MyDate 按照类声明的大小写约定处理,而不是由语意要求来定。
在可以使用变量之前,实际内存必须被分配。这个工作是通过使用关键字 new 来实现的。如下所示:
MyDate myBirth;
myBirth = new MyDate()
第一个语句(声明)仅为引用分配了足够的空间,而第二个语句则通过调用对象的构造方法为构成 MyDate 的三个整数分配了空间。对象的赋值使变量 myBirth 重新正确地引用新的对象。
这两个操作被完成后,MyDate 对象的内容则可通过 myBirth 进行访问。关键字 new 意味着内存的分配和初始化,new 调用的方法就是类的构造方法。
假使定义任意一个 class XXXX,可以调用 new XXXX()来创建任意多的对象,对象之间是分隔的。就像有一个汽车的类,可以使用new 关键字创建多个具体的对象,比如有红旗的汽车、奇瑞的汽车、大众的汽车等等,它们都是独立的单元,相互之间是隔离的。
一个对象的引用可被存储在一个变量里,因而一个变量点成员(如 myBirth.day)可用来访问每个对象的单个成员。请注意在没有对象引用的情况下,仍有可能使用对象,这样的对象称作”匿名”对象。
使用一个语句同时为引用 myBirth 和由引用 myBirth 所指的对象分配空间也是可能的。
MyDate myBirth=new MyDate();