构造方法

类方法中的一类特殊方法:构造方法。

 

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

 

 

 

原文地址:https://www.cnblogs.com/liyihome/p/3669285.html