Java类与对象04:构造器

构造器(重点)

  • 类中的构造器也称为方法构造,是在进行创建对象的时候必须调用的,并且构造器有以下俩个特点:

    • 必须和类的名字相同
    • 必须没有返回类型,也不能写void
  • 构造器必须要掌握

构造器的作用


  1. 使用new关键字本质上是在调用构造器

  2. 用来初始化值

示例代码

public class Application {
    public static void main(String[] args) {
        //new 实例化了一个对象。
        Person person = new Person();
        System.out.println(person.name);
        //虽然方法中啥也没有写。但是他还是能new出来一个方法、
        //那就说明存在一个空的perosn这样的方法、
        //public Person(){}
    }
}
          /*
          package CP;
//amy类
//一个项目应该只存在一个main方法
//一个类中只有属性和方法
public class Student {
    //属性:字段
    //像人的话就是,年龄,身高,体重,智力,性别。
    String name="amy";//默认为null
    int age;//默认是0
    //方法
      public void lupin(){
          System.out.println(this.name+"爱鲁邦");
      }
}
           */

  //java class打开文件
public class Person {
       //一个类即使啥也不写,它也会存在一个方法
       //显示的定义构造器
     String name;

     //实例化初始值
    public Person(){
        this.name="lubang";
        
        //运行结果
        //lubang
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s0FoehCP-1632919074224)(D:\JAVA学习图片\java面向对象\10.png)]

  • DeBug一下

    • 发现跳到了实例化的地方

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7E8owKde-1632919074227)(D:\JAVA学习图片\java面向对象\11.png)]

    • 再往下走

    • 发现走到了this

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6WoRv9O-1632919074229)(D:\JAVA学习图片\java面向对象\12.png)]

    • 再往下

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYcuIvjl-1632919074231)(D:\JAVA学习图片\java面向对象\13.png)]

    • 再之后将 构造器走完了

    • 断点处的代码,才生成对象

    • 再往下后就输出了lubang

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qE9L4xaD-1632919074233)(D:\JAVA学习图片\java面向对象\14.png)]


有参构造

public class Person {
       //一个类即使啥也不写,它也会存在一个方法
       //显示的定义构造器
     String name;

     //实例化初始值

       //构造器的作用
       //1.使用new关键字必须要有构造器。本质是在调用构造器。

    //有参构造:一旦定义了有参构造,无参构造就必须显示定义。
       //将无参构造删掉后
       public Person(String name){
           //这个name代表的是String传进来的参数
        this.name=name;
       }
}
public class Application {
    public static void main(String[] args) {
        //new 实例化了一个对象。
        Person person = new Person();
        System.out.println(person.name);
        //虽然方法中啥也没有写。但是他还是能new出来一个方法、
        //那就说明存在一个空的perosn这样的方法、
        //public Person(){}
    }
}
          /*
          package CP;
//amy类
//一个项目应该只存在一个main方法
//一个类中只有属性和方法
public class Student {
    //属性:字段
    //像人的话就是,年龄,身高,体重,智力,性别。
    String name="amy";//默认为null
    int age;//默认是0
    //方法
      public void lupin(){
          System.out.println(this.name+"爱鲁邦");
      }
}
*/
  • 一旦定义了有参构造,无参构造就必须显示定义。

    • 将无参构造删除后运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1gmcmIh-1632919074234)(D:\JAVA学习图片\java面向对象\015.png)]

  • 发现报错了

  • 运行后发现

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6oJGVMj-1632919074235)(D:\JAVA学习图片\java面向对象\016.png)]

有参与无参

  • 将无参构造重新定义后Debug一下

public class Application {
    public static void main(String[] args) {
        //new 实例化了一个对象。
        Person person = new Person("amy");
        System.out.println(person.name);
        //虽然方法中啥也没有写。但是他还是能new出来一个方法、
        //那就说明存在一个空的perosn这样的方法、
        //public Person(){}
    }
}
          /*
          package CP;
//amy类
//一个项目应该只存在一个main方法
//一个类中只有属性和方法
public class Student {
    //属性:字段
    //像人的话就是,年龄,身高,体重,智力,性别。
    String name="amy";//默认为null
    int age;//默认是0
    //方法
      public void lupin(){
          System.out.println(this.name+"爱鲁邦");
      }
}
           */

public class Person {
       //一个类即使啥也不写,它也会存在一个方法
       //显示的定义构造器
     String name;
       public Person(){
       }
     //实例化初始值
       //构造器的作用
       //1.使用new关键字必须要有构造器。本质是在调用构造器。

    //有参构造:一旦定义了有参构造,无参构造就必须显示定义。
       //将无参构造删掉后
       public Person(String name){
        this.name=name;
       }
}
  • 发现只会走有参的构造

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7lIOapJ7-1632919074235)(D:\JAVA学习图片\java面向对象\17.png)]


构造器:

  • 和类名相同
  • 没有返回值

作用

    • new 的本质是在调用构造方法
    • 初始化对象的值

注意点

  • 定义有参构造后,如果想要使用无参构造,需要定义无参构造(让无参构造显示出来)

快捷键

  • Alt+Insert


关于this
  • this.=
  • 代表当前类,等于号后面的是代表参数传进来的值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值