一、封装的好处:
- 良好的封装能够减少耦合。
- 类内部的结构可以自由修改。
- 可以对成员进行更精确的控制。
- 隐藏信息,实现细节。
二、实现封装的步骤:
1.修改属性的可见性来限制对属性的访问(一般限制为private
),例如:
public class Person {
private String name;
private int age;
}
2.对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问.()(setter、getter方法)例如:
public class Person {
/*
* 对属性的封装 一个人的姓名、性别和年龄都是这个人的私有属性
*/
private String name;
private String sex;
private int age;
/*
* setter()、getter()是该对象对外开放的接口
*/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age<120){
this.age = age;
}
else{
System.out.println("数值错误"); //可以对接受的数据做一些判断
}
}
}
例1:
package demo2;
public class Person {
/********* begin *********/
private String name;
private int age;
public void setname(String name){
this.name=name;
}
public String getname(){
return name;
}
public void setage(int age){
this.age=age;
}
public int getage()
{
if(age<120){
return age;
}
else{
return 0;
}
}
public void talk(){
System.out.println("我是:"+getname()+",今年:"+getage()+"岁");
}
/********* end *********/
}
package demo2;
public class Test3 {
public static void main(String[] args) {
/********* begin *********/
// 声明并实例化一Person对象p
Person p=new Person();
// 给p中的属性赋值
p.setname("张三");
p.setage(40);
// 调用Person类中的talk()方法
p.talk();
/********* end *********/
}
// 在这里定义Person类
}