private关键字与封装
一、private
private关键字 就是一个权限关键字 public protected 默认不写
private关键字 表示私有权限 该成员变量或成员函数只能够在类中被访问 外界不可访问
弊端:如果赋予了一个错误的值 那么势必回导致程序后期的运行结果
如何解决呢? 你的内裤能否被别人直接看到?你的银行密码能否被别人直接修改?
就是说我们对象的成员变量并不是完全需要向外界可访问的
如果能够被外界访问 那么势必也能被外界修改
class Person{
int age;
}
Person p=new Person();
System.out.println(p.age); //只是访问并打印
p.age=-10; //不符合现实业务逻辑 给出的是一个错误的数据
//访问并修改
我了防范外界直接修改对象的成员变量?
private私有化关键字
成员变量加了private的话 修改不行了 获取也不行了
但是,如果后期一定要修改或获取,就要用到setter 和 gette
setter 是一个Java当中的规范 修改器 主要负责修改成员变量
本身就是一个成员函数 命名方式一般为 setXxx:setAge setName
getter 访问器 主要负责访问成员变量(返回成员变量) getter看需求
建议:今后的代码中 成员变量一律私有 然后再去设置访问器和修改器
注意:如果成员变量和局部变量重名了 如何区分呢?只需要在成员变量之前加this.即可
二、封装
封装:从字面意义上来看 封装就是将一些杂七杂八的东西进行统一的管理
收纳盒 衣柜 冰箱 书柜
最大的好处就是节约代码 方便管理 降低耦合性
在代码中有什么体现:
循环:主要解决有规律且重复性执行的代码
函数:主要解决具有独立功能的一段代码 后期进行复用即可
数组:主要解决多种同类型数据的操作 统一操作 方便类管理
类:主要将数据和行为进行统一方便操作 仿真现实中的事物
优点:
-
1. 良好的封装能够减少耦合。
-
2. 类内部的结构可以自由修改。
-
3. 可以对成员变量进行更精确的控制。
-
4. 隐藏信息,实现细节。
实现Java封装的步骤
1. 修改属性的可见性来限制对属性的访问(一般限制为private),例如:
class Fengzhuang{
private int age;
private String name;
}
此时就死局了~ 不能保证后期对成员变量不进行修改或获取,因此要写一个可以访问和修改age 和 name 的方法。
2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:
class Fengzhuang{
private int age;
private String name;
public void setage(int age){
this.age = age;
}
public int getage(){
return this.age;
}
public void setname(String name){
this.name = name;
}
public String getname(){
return this.name;
}
}
这样的话,在其它类中也可以访问和修改age 和 name,例如:
class Person{
public static void main(String[] args) {
Fengzhuang p=new Fengzhuang();
p.setage(-10);
p.setname("jjkhh");
System.out.println(p.getage());
System.out.println(p.getname());
}
}