java构造方法与方法的区别

来源:互联网 发布:java中import的用法 编辑:程序博客网 时间:2024/05/17 08:35

构造方法是定义在java类中的一个用来初始化对象的函数,其方法名和类名相同,但是通常不显示地它,在创建类的一个实例时,构造方法就像一个方法一样被调用,因为从来不显示地调用它,所以无法访问其返回值,即构造函数不返回值。

构造方法的小例子:

Public class person{   Int id ;   Int age;   Person(int n, int i){      Id = n;      Age = I;   }}

我们从上面的说明中,可以看出构造方法和方法是有区别的,主要表现在一下方面:

1、  修饰符:构造方法像普通方法一样,可以有任何的访问修饰符public、protected、private,但是不能有abstract、final、static等非访问修饰符;

2、  返回值:构造方法没有返回值,void也不行;

3、  命名:构造方法和类具有相同的名字,而类最好不要。

4、  编写:构造方法可以自己编写也可以系统默认,显然普通方法只能自己编写;

5、  调用:在创建对象或是调用静态成员变量时,首先会调用构造方法,是系统自动调用,而普通的方法只能实例化完对象,才能用对象调用。

上面只是简单的对比了一下构造方法和普通方法,下面我们在具体看一下。

(1)     this用法:

对于方法引用this指向正在执行方法的类的实例;静态方法不能使用this关键字;构造方法指向这个对象的另一个构造方法,示例如下:

Public class Person{   String name;   int age;   String sex;   Person (string n, int g , string s){      name = n;      age = g;      sex = s;   }   Person ( string n ,I nt g){      This(n,g,”男”)   }   Public Static void main(String args[] ){     Person  p1 = new Person(“hua”,20,”女”);     Person  p2 =new Person(“yang”,20);     System.out.println(p1.name +”,” +p1.age +”,”+ p1.sex);     System.out.println(p2.name +”,” +p2.age +”,”+ p2.sex);   }}

运行结果如下:

分析上面的代码得出,Person类中的第二个构造方法调用了第一个构造方法。

注意:在构造方法中只能调用一次其他的构造方法,并且并且调用构造方法的语句必须是第一条语句,否则编译错误。

(2)      继承中构造方法:

构造方法和普通方法,都用关键字super指向超类,但是使用方法不同。

1)  普通方法:执行被重载的超类中的方法,代码如下:

Class  Person{   Public void eat(){     System.out.print(“想要吃好吃的”);   }}Class Woman{  Public void eat(){super.eat();System.out.print(“不行,还是减肥吧”);  }}

2)  构造方法:调用超类中的构造方法,且必须放在第一行,否则出错,代码如下:

Class  Person{   Person(){ }}Class Woman{  Woman(){    Super();  }}

注意:如果子类构造方法中既没有显示调用积累构造方法,而基类中又没有午餐的构造方法,则编译后出错。

      这里还有一点是需要大家注意的,在包含构造方法的初始化顺序如下:

      1.主类的静态成员首先初始化;

     2.主类的超类的构造方法按照从最高到最低的顺序被调用;

     3.主类的非静态对象(变量)初始化;

     4.调用主类的构造方法;

     总之,构造方法并不难理解,但是在我们应用的过程中要细心,这样才不会出错。

0 0