封装原则
- 将不需要对外提供的内容都隐藏起来
-
封装好处
提高数据访问的安全性
- 隐藏了实现细节
从数据安全角度
没有封装,在外部类中可以直接访问修改数据,造成数据不安全public class Employee
{
double salary;
}
public class Manager
{
public static void main(String[] args)
{
Employee emp=newEmployee();
emp.salary=0.0; //直接读取数据不安全
}
}
封装的控制和实现
private私有访问修饰符修饰变量public class Employee
{
private double salary;
}
public class Manager
{
public static void main(String[] args)
{
Employee emp=newEmployee();
emp.salary=0.0; //报错
}
}
封装的控制和实现
提供一个公共的方法的访问方式
public class Employee
{
private double salary;
public void setSalary(double newSalary)
{
if(newSalary>=5000)
{
salary=newSalary;
}
else
{
System.out.println("对不起,设置员工的工资不符合员工最低工资标准");
}
}
public double getSalary()
{
return salary;
}
}
public class Manager
{
public static void main(String[] args)
{
Employee emp = new Employee();
emp.setSalary(6000);
}
}
面向对象的封装机制
该露的露,该藏的藏
高内聚
低耦合
数据的隐藏
应禁止直接访问一个对象中数据的实际表示,而通过操作方法来访问,这称为数据的隐藏
追求的是提高数据访问的安全性