java的一个重要思想是面向对象,针对某个对象,会包含各种各样的属性,而这些属性,有的是外部可见的有的是不可见的,也就是常用的public 和private。针对public 在这里不多说,重点说一下private定义的属性。
有的人会问,既然定义了private 为什么还要有get和set方法,其实简单的说法就是,语法规定,为了实现接口的调用,而不是直接操作某个对象的属性。只是简单的get和set属性值,其实和定义成public是没有什么区别的。区别主要在与当需要对输入数据进行统一管理和修改。如
public class People{
private String name;
private String sex;
public void setName(String name) {
this.name = "this is people name is " + name;
}
public String getName(){
return "名字是:" + name
}
public void setSex(String sex) {//统一数据管理
if("男”.equals.(sex) || "男性".equals(sex)) {
this.sex = 1;
}
}
}
这种情况下就体现出来了get个set方法的优势了,统一了数据的输出和输入内容,针对输入和输入的数据进一步封装修改、---------------------------------体现了灵活性
在就是对外,只能调用提供的get和set方法(接口),不可对属性值全部了解。可以根据所需,针对属性设计成只读/只写。---------------------体现了封闭性
1、隐藏内部实现细节,保证代码的安全,同时也可以提升数据的安全性。
使用类的人不关心你的类中有什么,只关心类提供了什么功能
所以设计类的时候要尽量不提供public的成员变量,最好一个都没有,只提供接口
提供类的人要尽量将类中有什么隐藏起来,只告诉使用者你能做什么
2、在继承的时候,更灵活的数据管理 。