构造方法的运用

1.构造方法在对象创建的时候运行,可以对对象进行初始化

2.一个类的构造方法与该类的名字相同,没有返回值。

3.对于一个类,如果不创建构造方法,会默认有一个空参数的
构造方法,并且该构造方法有方法体,但是没有内容。

public class ConsDemo{
    public static void main(String []args){
        Person person1 = new Person();
        person1.speak();
    }
}
class Person{
    private String name;
    private int age;
    public void speak(){
        System.out.println(name+":"+age);
    }
}

该对象可以实例化成功

4.如果在类中定义了指定的构造方法,那么类中的默认的构造方法就没有了
例如:Person类定义了一个参数的构造方法,实例化对象时不传参数代码如下:

public class ConsDemo{
    public static void main(String []args){
        Person person1 = new Person();
        person1.speak();
    }
}
class Person{
    private String name;
    private int age;
    Person(String name){
        this.name = name;
        age=1;
        System.out.println("一个参数的构造方法运行");
    }
    public void speak(){
        System.out.println(name+":"+age);
    }
}
**

结果如下

    ConsDemo.java:29: 错误: 无法将类 Person中的构造器 Person应用到给定类型;
        Person person1 = new Person();
                         ^
  需要: String
  找到: 没有参数
  原因: 实际参数列表和形式参数列表长度不同
**会提示没有相应的构造方法**

5.一个类可以有多个构造方法,用于对不同的对象进行针对性的初始化。多个
构造方法在类中是以重载的形式来体现的,这些个构造方法的名字必须相同,
都和类名相同,但是他们必须拥有不同的参数列表(参数个数、参数类型、
参数顺序)本类实例化的时候会根据传参数的类型来选择调用哪一个构造方法。
代码如下:

public class ConsDemo{
    public static void main(String []args){
        Person person1 = new Person();
        person1.speak();
        Person person2 = new Person("xiao");
        person2.speak();
        Person person3 = new Person("xiao",3);
        person3.speak();
    }
}
class Person{
    private String name;
    private int age;
    //定义一个构造方法
    // 1.空参数构造方法
    Person(){
        name="xiao";
        age=23; 
        System.out.println("空参数的构造方法运行");
    }
    // 2.一个参数的构造方法
    Person(String name){
        this.name = name;
        age=1;
        System.out.println("一个参数的构造方法运行");
    }
    //3.两个参数的构造方法
    Person(String name,int age){
        this.name = name;
        this.age = age;
        System.out.println("两个参数的构造方法运行");
    }
    public void speak(){
        System.out.println(name+":"+age);
    }
}

结果如下:


Compiling ConsDemo.java......
------Output------
空参数的构造函数运行
xiao:23
一个参数的构造函数运行
xiao:1
两个参数的构造函数运行
xiao:3
[Finished in 0.6s]

6.一般方法和构造方法的区别:

构造方法:在对象创建时,就被调用与之对应的构造方法,对对象进行初始化。
对象创建时会调用,且只调用一次

一般方法:对象创建后,需要方法功能时才调用。
对象创建后,可以多次调用。

7.定义构造方法的场景:在描述事物时,该事物一存在就具备一些内容,这些内容就定义在构造方法中。

8.构造方法拥有自己的return语句。

在构造方法中写上return语句,若return语句之后不存在内容,不影响编译与运 行,但是若return语句后还有内容,会提示报错。

猜你喜欢

转载自blog.csdn.net/ILYPTING/article/details/70338656
今日推荐