构造方法

2018-07-28  本文已影响0人  临木有希

(1)构造方法名称与类名相同,没有返回值声明( 包括void)(2)构造方法用于初始化数据(属性)
(3)每一个类中都会有一一个默认的无参的构造方法
(4)如果类中有显示的构造方法,那么默认构造方法将无效
(5)如果有显示的构造方法,还想保留默认构造方法,需要显示的写出来。
(6)构造方法可以有多个,但参数不一样,称为构造方法的重载
(7)在构造方法中调用另一个构造方法,使用this(..),该句代码必须在第一句。
(8)构造方法之间的调用,必须要有出口。
(9)给对象初始化数据可以使用构造方法或setter方法,通常情况下,两者都会保留。
(10)一个好的编程习惯是要保留默认的构造方法。 (为了方便--些框架代码使用反射来创建对象)
(11) private Dog(){ },构造方法私有化,当我们的需求是为了保正该类只有一一个对象时。
什么时候一个类只需要一一个对象?比如,工具类(没有属性的类,只有行为)并且该工具对象被频繁使用。权衡只用一一个对象与产生多个对象的内存使用,来确定该类是否要定义为只需要一一个对象。

/**
    构造方法:构造方法是在类中定义的,构造方法的定义格式:方法名称与类名相同,无返回值类型的声明
    1.构造方法就是类构造对象时调用的方法,用于对象的初始化
    2.构造方法是实例化一个类的对象时,也就是new的时候,最先调用的方法 
*/

public class Test3{
    public static void main(String[]args){
        Dog dog = new Dog();
        Dog dog1 = new Dog("小白",5);
        
    }
}

class Dog{
    
    //默认构造方法,通常有其他构造方法时,要保留默认构造方法
    public Dog(){
        System.out.println("构造方法执行了");
    }
    
    public Dog(String name){
        this.name = name;
        System.out.println("带一个参数的构造方法执行了");
    }
    
    public Dog(String name,int age){
        this(name);//调用其他构造方法时,此语句需要在第一句,在构造方法相互调用时必须要有出口
        //this.name = name;
        this.age =age;
        System.out.println("带两个参数的构造方法执行了");
    }
    
    
    
    private String name;
    private int age;
    
    public void setName(String name){
        this.name = name;
    }

    public String getName(){
        return name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读