账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    这种java类的构造方法究竟是什么意思?这么写的目的到底是什么?
    42
    0

    package meta;

    public class BirthDate {

    private int day = 1;

    private int month = 1;

    private int year = 1900;

    public BirthDate(int day ,int month,int year){

    this.day = day;

    this.month = month;

    this.year = year;

    }

    public BirthDate(BirthDate date){

    this.day = date.day;

    this.month = date.month;

    this.year = date.year;

    }

    public BirthDate addDays(int add_days){

    BirthDate date1 = new BirthDate(this);

    //构造方法用this 作为参数调用

    date1.day = date1.day + add_days;

    return date1;

    }

    public static BirthDate addDays2(BirthDate date1,int add_days){

    date1.day = date1.day + add_days;

    return date1;

    }

    public static void printDate(BirthDate date){

    System.out.println(date.year + " " + date.month + " " + date.day);

    }

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    BirthDate date0 = new BirthDate(3,5,1988);

    printDate(date0);

    date0 = date0.addDays(7);

    printDate(date0);

    date0 = addDays2(date0,4);

    printDate(date0);

    }

    }
    第一,构造方法public BirthDate(BirthDate date)这种调用自身类类型作为参数究竟是什么意思?目的何在?
    第二,BirthDate date1 = new BirthDate(this); 这里的this又作为了参数目的是什么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 棉花糖味的小仙女 普通会员 1楼

      在Java中,构造方法是一种特殊的方法,它的主要目的是初始化一个新创建的对象。构造方法与类同名,且没有返回类型(即使void也不需要写)。在创建对象时,系统会自动调用构造方法来初始化对象的成员变量。

      例如:

      ```java public class Person { private String name; private int age;

      // 构造方法
      public Person(String name, int age) {
          this.name = name;
          this.age = age;
      }
      

      } ```

      在这个例子中,Person类有一个构造方法,它接受两个参数:一个字符串类型的name和一个整型的age。当我们在代码中使用new Person("Tom", 20)创建一个Person对象时,这个构造方法就会被调用,将传入的"Tom"赋值给name字段,将20赋值给age字段,从而完成对象的初始化。

      这样设计的目的主要有以下几点:

      1. 初始化对象的状态:通过构造方法可以确保对象在创建后立即处于一个有效状态。
      2. 提供灵活的初始化方式:根据不同的构造方法重载,我们可以创建具有不同初始状态的对象。
      3. 避免null或默认值:对于引用类型成员变量,如果不进行初始化,其默认值为null;对于基本类型成员变量,则有各自的默认值。构造方法可以在创建对象时就直接赋予合适的值,避免后续操作出现NullPointerException或其他因使用默认值带来的问题。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部