详谈java的构造方法和权限

1,java的构造方法

1)什么是构造方法?
名字和类名完全一样,没有返回值(可理解为返回一个对象),
用new来调,调用的结果是在堆内存中创建一个对象空间且返回它的堆内存首地址


public class MyDate_1 {
    private int year;
    private int month;
    private int day;

    //空参构造
    public MyDate_1(){

    }
    //带参构造
    public MyDate_1(int year, int month, int day) {
        super();
        this.year = year;
        this.month = month;
        this.day = day;
    }
    //拷贝构造
    public MyDate_1(MyDate_1 my){
        this.year = my.year;
        this.month = my.month;
        this.day = my.day;
    }
    public int getYear() {
        return year;
    }
    public void setYear(int year) {
        this.year = year;
    }
    public int getMonth() {
        return month;
    }
    public void setMonth(int month) {
        this.month = month;
    }
    public int getDay() {
        return day;
    }
    public void setDay(int day) {
        this.day = day;
    }
    @Override
    public String toString() {
        return "MyDate_1 [year=" + year + ", month=" + month + ", day=" + day + "]";
    }

}

public class TestMyDate_1 {
    public static void main(String[] args) {

        //调用空参构造
        MyDate_1 my1 = new MyDate_1();
        System.out.println(my1);

        //调用带参构造
        MyDate_1 my2 = new MyDate_1(2017,10,1);
        System.out.println(my2);

        //调用拷贝构造
        MyDate_1 my3 = new MyDate_1(my2);
        System.out.println(my3);
        /**
         * 打印结果:
         * MyDate_1 [year=0, month=0, day=0]
         * MyDate_1 [year=2017, month=10, day=1]
         * MyDate_1 [year=2017, month=10, day=1]
         */
    }
}

2)构造方法的特点
如果我们没有手动写构造方法,则Java会自动帮我们添加一个默认构造方法(空参的构造方法)。如果我们手动写了构造方法,则Java不会帮我们添加默认构造方法(空参的构造方法),如果我们需要就手动再添加

3)在构造方法中调用构造方法
这个需要使用this()

public MyDate(MyDate d) {
    //在构造方法中调用构造方法,
    //用this(...), 且该方法只能在构造方法中调用,
    //功能是给内存中的数据赋值
    this(d.year,d.month,d.year); 
}

2,java中的权限问题

权限从低到高(4种):
1)private: 只有当前类能够访问
2)缺省(默认): 只有当前包中的所有类(包含当前类)能访问
3)protected: 当前包中的类能够访问,其它包中若是子类也能访问。其它包中不是当前类的子类则不能访问。
4)public: 任意类(无论是否是相同的包或子类关系)都能访问

这里写图片描述

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值