• Java学习笔记之---构造方法


    Java学习笔记之---构造方法

    (一)构造方法的特性
    1. 构造方法不能被对象单独调用
    2. 构造方法与类同名且没有返回值
    3. 构造方法只能在对象实例化的时候被调用
    4. 当没有指定构造方法时,系统会自动添加无参的构造方法,当有指定的构造方法时,系统不会再自动添加无参的构造方法
    5. 一个类可以有多个构造函数
    6. 子类的构造默认调用父类的构造
    7. 虽然父类的构造方法不能被继承,不能被重写,但是会影响子类对象的实例化
    8. 子类默认调用父类的无参构造方法,可以通过super调用父类允许访问的其他构造方法
    (二)构造方法

    (1)带参构造方法

       public 构造方法名(数据类型 形式参数1,数据类型 形式参数2){   }

    public Animal(String name){
    
        this.name=name;
    
        System.out.println("我是有参构造方法1");
    
    }
    
    public Animal(String name,int age ){
    
        this.name=name;
    
        this.age=age;
    
        System.out.println("我是有参构造方法2");
    
    }

    (2)无参构造方法

       public 构造方法名(){   }

    public Animal(){
    
        System.out.println("我是无参构造方法");
    
    }
    (三)构造方法的调用

       通过实例化对象来调用

     class AnimalTest{
    
        public static void main(String[] args){
    
            Animal a=new Animal("aa",1);
    
            System.out.println(a.name);
    
        }
    
    }
    (四)构造方法实例
    
    
    public class Animal {
    private String name;
    int age;
    {
    System.out.println("我是构造代码块");
    }
    public Animal(){
    System.out.println("我是无参构造方法");
    }
    public Animal(String name){
            this.setName(name);
          System.out.println("我是有参构造方法1");
    }
    public Animal(String name,int age ){
    this.setName(name);
    this.age=age;
    System.out.println("我是有参构造方法2");
    }
    public void setName(String nmae){
    this.name=name;
    }
    public String getName(){
    return this.name;
    }
    }
    class AnimalTest{
    public static void main(String[] args){
    Animal a
    =new Animal("aa",1);
    System.out.println(a.getName
    +":"+a.age);
    Animal b
    =new Animal("bb");
    System.out.println(b.getName());
    Animal c=new Animal(); } }
    运行结果:
    我是有参构造方法2
    aa:1
    我是有参构造方法1
    bb
    我是无参构造方法
    (五)构造代码块
    1. 构造代码块在成员变量下面
    2. 构造代码块比构造方法先执行
     
     public class Animal {
    
        String name;
    
        int age;
    
        {
    
            System.out.println("我是构造代码块");
    
        }
    
        public Animal(){
    
            System.out.println("我是无参构造方法");
    
        }
    
        public Animal(String name){
    
            this.name=name;
    
            System.out.println("我是有参构造方法1");
    
        }
    
        public Animal(String name,int age ){
    
            this.name=name;
    
            this.age=age;
    
            System.out.println("我是有参构造方法2");
    
        }
    
    }
    
    class AnimalTest{
    
        public static void main(String[] args){
    
            Animal a=new Animal("aa",1);
    
            System.out.println(a.name+":"+a.age);
    
            Animal b=new Animal("bb");
    
            System.out.println(b.name);
    
            Animal c=new Animal();
    
        }
    
    }

    运行结果:

    我是构造代码块

    我是有参构造方法2

    aa:1

    我是构造代码块

    我是有参构造方法1

    bb

    我是构造代码块

    我是无参构造方法

  • 相关阅读:
    PyCharm不能使用Tab键进行整体向左缩进解决方法
    Python代码规范(PEP8)问题及解决
    Python学习开始
    Spring Annotation(@Autowire、@Qualifier)
    Spring自动装配
    servlet验证码
    Spring集合装配
    帐号明文传输漏洞
    java单元测试
    项目building workspace很慢,或者直接内存溢出的问题解决办法。
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11167812.html
Copyright © 2020-2023  润新知