Java面对对象之封装
Posted ls001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面对对象之封装相关的知识,希望对你有一定的参考价值。
学习到了封装,也希望这篇文章能个给后面学习java的人一点帮助.
首先我们用实际问题先感受一下封装的概念.
用人来举例,人的年龄是有限的,0-120左右
我们在社交网站填写个人信息的时候,也会有年龄这一项,那么这个年龄允许填写负数或者很大的数吗?
实际上是不允许的.
这个时候实际上是对年龄这一项做出了某些条件的限制
再比如,中国人的名字.
登记户口的时候,名字和领导人的名字同名是否可行?
还是不行,因为国家不予许这样做
这个时候国家对名字这一项也做出了条件限制
回到我们程序
public static void main(String[] args) {
//符合语言规则,不符实际生活的案例,不推荐这样做
Person p = new Person(); p.age = -18;//这样做在语言层面是合法的,但是并不符合实际生活中的情况 p.name = "习主席"; }
class Person{ int age;//类比人的年龄 String name;//类比中国人的名字 }
但是这样做会有很多不符生活的名字,年龄.
所以Java的前辈们想出了一种方法,封装,用封装来给成员变量一定的限制.
1.对成员变量或者方法添加private_____使其不允许被对象的引用(p.age会报错)直接访问;被private修饰之后无法直接访问那我们如何访问呢?
例如age,可以这样去得到age p.getAge();
public int getAge() {
return age;
}
设置年龄
p.setAge();
public void setAge(int age) {
//这样我们对年龄做出了限制,更加符合我们的需求
if(age>120 && age<0){
age==0;
return;
}
this.age = age;
}
2.使用public成员方法操作被private修饰的成员
class Person{ private int age;//使用private修饰age,不让这个属性被对象的引用直接访问,(p.age会报错) public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
以上是关于Java面对对象之封装的主要内容,如果未能解决你的问题,请参考以下文章