Java:封装、private(私有)、this关键字

封装
private(私有)

Student类中的属性age,一般人的年龄范围在0~100之间,如果给age赋值-5,就不符合实际情况
所以我们要引入private关键字来将age隐藏起来,
但是这样我们定义这个成员变量就没有意义,所以我们要提供设置和获取age的方法,供外界访问
并在设置age的方法中控制age的范围

private int age;//用private修饰age,使age只能在本类中使用
//获取age的方法
public int getAge() {
    return age;
}
//设置age的方法
public void setAge(int a) {
	if(a>=0&&a<=100)	//设置判断条件,控制age的范围
    	age = a;
}

private:
1.是一个权限修饰符
2.可以修饰成员变量和成员方法
3.被其修饰的成员只能在本类中被访问

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装优点:隐藏实现细节,提供公共的访问方式,提高了代码的复用性,提高安全性。
封装原则:将不需要对外提供的内容都隐藏起来,把属性隐藏,提供公共方法对其访问。
注意:私有只是封装的一种体现,不可把封装等同于私有,我们最早接触到的封装就是方法

this
public String name;
public void setName(String name) {
    name = name;
}
public String getName() {
    return name;
}
/*
我们说过变量的起名要做到见名知意,那么我们将setName方法中的形参名称定义为name
*/
Student s=new Student();
s.setName("xx");
System.out.println(s.getName());
/*
输出的s的name为null
当"xx"作为实参传给形参name后,执行的name=name;这个赋值语句出现了问题
我们说过,如果出现局部变量和成员变量同名情况时,方法中的局部变量会采取就近原则
即这个赋值语句中的name都是局部变量,方法没有到方法外去找成员变量name
所以成员变量name的值没有发生改变,还是null
*/
//为了避免这种现象我们要使用this关键字
public String name;
public void setName(String name) {
    this.name = name;
}
public String getName() {
    return name;
}
/*
其实getName方法中的return name;的name前也应该加上this.
*/

this 代表本类的一个引用,你可以认为this代表的是一个本类对象,哪个对象调用这个方法,那么方法中的this就代表谁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值