这篇我们先来聊一聊构造方法。
首先要清楚类与对象的关系,用类声明的变量称为对象,类是创建对象的模板。在用类声明对象后,还必须创建对象。
那么就来到了类中的一种特殊的方法,构造方法。
构造方法是专门用来创建对象的方法,格式为:
public 类名称(参数类型 参数名称){
方法体
}
注意事项:
- 类中的构造方法的方法名必须与所在类的名字完全一致。
- 构造方法没有返回值类型,自然也没有return。
- 允许在一个类中编写若干个构造方法,但必须保证它们的参数不同(参数的个数不同,或参数的个数相同,但参数列表中对应的某个参数的类型不同),例如:
Dog (int a)
{
age=a;
}
Dog (float a) //这里如果把float改成int会报错
{
age=(int)a;
}
- 如果类中没有编写构造方法,系统会默认该类只有一个无参数的构造方法,使用默认方法构造的对象的成员变量为默认值。如果类中定义了一个以上的构造方法,那么不再提供默认的构造方法。
下面我们聊一下关键字new:
我们在数组部分已经见过这个关键字,在构造对象这里也需要用到它。
之前我们学过的语句,像:
int num[];
FangFa fangfa;
这些叫做数组的声明,方法的声明。
声明后是不能直接使用的,因为还没有分配内存空间。
所以你声明后,数组不用给长度,对象不用给参数,因为没分配内存,
根本存不进去。
要分配内存空间,我们就要用到new。
new关键字是一个运算符:
运算符的作用就是计算,那么new的计算方法为为变量分配内存后,将计算出一个称作引用的值(该值包含着代表这些变量内存位置及相关的重要信息),即表达式 new 类名称 是一个值,如果把该值赋给对象名,那么系统分配的内存单元将由它们操作管理。分配给对象的变量被习惯性地称作对象的实体。
一个类声明的两个对象如果具有相同的引用,二者就有完全相同的变量(实体)。
其创建对象的过程中大致经历了一下三个步骤:
1、将类加载到方法区。
2、在堆中开辟一块内存用于存储新创建的对象。
3、在栈中创建指向对象的引用。
例:
FangFa fangfa;
fangfa = new FangFa(2,4.5);//这样一个对象就创建好了
FangFa fangfa2;
fangfa2 = fangfa;//此时fangfa和fangfa2指向相同的变量。
另外说一下Java中的垃圾收集:
这种机制周期地检测某个实体是否已经不再被任何对象所拥有(引用),如果发现这样的实体,就释放实体占有的内存。
数组的创建也可以利用以上知识进行理解。
本文深入探讨了Java中构造方法的概念及其在对象创建过程中的作用,解析了构造方法的格式与注意事项,包括如何通过new关键字分配内存并创建对象,以及Java的垃圾回收机制。

被折叠的 条评论
为什么被折叠?



