类方法中的一类特殊方法:构造方法。
1. 构造方法是当用类生成对象时,系统在生成对象时构造方法会被调用,但并不是构造方法生成了对象。
2. 构造方法没有返回值。格式为:[ public 方法名。 ] 构造方法的方法名与类名相同。
3. 构造方法是在对象生成的过程中自动调用,不可能利用指令去调用。
4. 在一个对象的生成周期中构造方法只用一次,一旦这个对象生成,那么这个构造方法失效 (这方面可以写入一个生成类时,运行一次的功能的应用)
5. 构造方法可以自己构造,包括有参和无参都可以,如果我们没写一个构造方法,那么系统会自动提供一个为空的构造方法,如果写了一个有参的构造方法,可以不用写无参构造方法
用类来生成对象的语句:
Student s=new Student()
第一个Student表示这是用Student类进行定义。“Student()”表示调用Students类的无参数的构造方法。public Students(){ }这形式的无参方法,如果()
中有参数,则系统构造对象的过程中调用有参的方法。例Student s=new Student(sdk) 则是调用Students(sdk)的有参方法,public Students(sdk){构造方法代码} 。
此时s称为一个对象变量。Student s的存储区域存放的是地址:一个对象在硬盘上占有一个连续地址,首地址赋予s空间。s称为对象Student的引用。(一个名叫s的屋子占用了内存世界的一地方)
注意:
在对象变量中存放的是引用(地址);在简单变量中存放的是数值。
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法:
public student(string name,int a){ }
public student(int a,string name){ }
为两个不同的构造方法。
代码运用:
1 class RectConstructor{//这里是装载乘除方法的类,下面是代值再运行 2 double length; 3 double width; 4 double area(){ 5 return length*width; 6 } 7 RectConstructor(double width,double length){//带参数的构造方法 8 this.length=length;//等号右面的length(这个length又是下面的new RectConstructor(10,20);在建立有参函数时给赋值上长10数值)赋值给this.length( 字面意思,这个类的长度这个类的length,字面意思,这个类) 9 this.width=width;//构造方法没有返回值,所以不能直接写return length*width;运算结果返回,但可以赋值,和打印。 10 } 11 } 12 public class RectDemo{ 13 public static void main(String args[]) { //这一句是程序的入口,有这句就代表代码从这里开始,上面的不会运行,但下面可以调用上面的代码运行。 14 RectConstructor rect1=new RectConstructor(10,20); 15 RectConstructor rect2=new RectConstructor(3,6); 16 double ar; 17 ar=rect1.area(); 18 System.out.println("第一个长方形的面积是"+ar); 19 ar=rect2.area(); 20 System.out.println("第二个长方形的面积是"+ar); 21 } 22 } 23 控制台输出结果为: 24 第一个长方形的面积是200 25 第二个长方形的面积是18