美文网首页
Java-基础-构造方法

Java-基础-构造方法

作者: 月沉眠love | 来源:发表于2019-08-12 23:49 被阅读0次

    一、构造方法

    自定义了一个构造方法,那么,编译器就不再自动创建默认构造方法:
    public class Main {
        public static void main(String[] args) {
            Person p1 = new Person("Xiao Ming", 15); // 既可以调用带参数的构造方法
            Person p2 = new Person(); // 也可以调用无参数构造方法
        }
    }
    
    class Person {
        private String name;
        private int age;
    
        public Person() {
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
        
        public String getName() {
            return this.name;
        }
    
        public int getAge() {
            return this.age;
        }
    }
    

    不是任何class都有构造方法?是的。

    那前面我们并没有为Person类编写构造方法,为什么可以调用new Person()?

    原因是如果一个类没有定义构造方法,编译器会自动为我们生成一个默认构造方法,它没有参数,也没有执行语句

    二、多构建方法

    class Person {
        private String name;
        private int age;
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public Person(String name) {
            this.name = name;
            this.age = 12;
        }
    
        public Person() {
        }
    }
    

    如果调用new Person("Xiao Ming", 20);,会自动匹配到构造方法public Person(String, int)。

    如果调用new Person("Xiao Ming");,会自动匹配到构造方法public Person(String)。

    如果调用new Person();,会自动匹配到构造方法public Person()。

    class Person {
        private String name;
        private int age;
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public Person(String name) {
            this(name, 18); // 调用另一个构造方法Person(String, int)
        }
    
        public Person() {
            this("Unnamed"); // 调用另一个构造方法Person(String)
        }
    }
    

    一个构造方法可以调用其他构造方法,这样做的目的是便于代码复用。调用其他构造方法的语法是this(…):

    相关文章

      网友评论

          本文标题:Java-基础-构造方法

          本文链接:https://www.haomeiwen.com/subject/iulmjctx.html