Java.类的封装(适合新手,通俗易懂,比较全面)

设计一个类时,应该对成员变量的访问做出一些限定,不允许外界随意访问,这就需要实现类的封装
类的封装,就是将类中的属性私有化,即用private关键字来修饰。私有属性只能在它所在的类中被访问。

如果外界想要访问私有属性,需要提供一些使用public修饰的公有方法。其中包括用于获取属性值的getXxx方法设置属性值的setXxx方法
接下来通过一个案例来实现类的封装。

public class Person {
//这个地方我们设置一个人的年龄,不能大于150,也不能小于0.
private int age;

  public int getAge(){
	return age;
}
  public void setAge(int a){
	if(a <= 150 && a >= 0)
		age = a;
	else System.out.println("年龄不太对呀");
}
}

我们来测试一下。

public class TestPerson {
	
	public static void main(String[] args) {
	Person p = new Person();
	p.setAge(60);	
    System.out.println( p.getAge());	
	}
}

运行结果:

60

如果不对类的属性进行封装,将年龄设置为-30。那么程序也是能够实现的,但在现实生活中显然是不合理的,因此有必要对类进行封装。

那么现在重点来了,对于初学者来说,学习这一部分感觉是不是比较抽象?
类的封装的实现其实依赖于访问控制级别修饰符:
在Java中,针对类、成员方法和属性提供了4种访问级别,分别是
private、default、protected、public

  • Private(类访问级别):如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其他成员访问,其他类无法直接访问。类的良好封装就是通过private关键字来实现的。
  • Default (包访问级别):如果一个类或者类的成员不使用任何访问控制符修饰, 则称它为默认访问控制级别,这个类或者类的成员只能被本包中的其他类访问。
  • protected (子类访问级别):如果—个类的成员被protected访问控制符修饰, 那么这个成员既能被同一包下的其他类访问, 也能被不同包下该类的子类访问。
  • Public (公共访问级别):这是一个最宽松的访问控制级别, 如果—个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是 否在同—个包中。
    在这里插入图片描述
    好的接下来我们再把上面那个代码再来讲一下
public class Person {

private int age;

  public int getAge(){
	return age;
}

  public void setAge(int a){
	if(a <= 150 && a >= 0)
		age = a;
	else System.out.println("年龄不太对呀");
}
  
}
  • 代码第3行属性age修饰符为private,只能被类中的成员访问。
  • 代码第5行和第9行的两种方法的修饰符为public,这是最宽松的访问控制级别,这两个方法可以被任何类访问,不管访问类与被访问类是否在同一个包中。

那么在测试类中,我们就可以访问getAge方法和setAge方法了,因为它们不会受到限制。而且这两个方法都是对Person类中封装的属性age的调用,那么我们这样就可以实现对age的访问。

public class TestPerson {
	
	public static void main(String[] args) {
	Person p = new Person();
	p.setAge(60);
	
    System.out.println( p.getAge());

	}

}
  • 35
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值