面向对象三大特征之一:封装
概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法类实现对隐藏信息的操作和访问
封装的好处: 隐藏类的实现细节 方便加入控制语句 方便修改实现 只能通过规定方法访问数据
封装的步骤: 1.修改属性 的可见性 >>>>>>设为private 2.创建公有的getter/setter方法 >>>>>>用于属性的读写 3 在getter/setter方法中加入属性控制语句 >>>>>>对属性值的合法性进行判断
封装的快捷键:Shift+Alt+S+R
废话不多说,上栗子:
public class Dog {
//属性
//昵称
private String name;
//健康值
private int health;
//亲密度
private int love;
//品种
private String strain="聪明的拉不拉多犬";
//获得值 只读方法
public String getName() {
return name;
}
//set 赋值 可写方法
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
if (health<0 || health>100) {
this.health=40;
System.out.println("健康值必须在0到100之间");
}
else
{
this.health = health;
}
}
public int getLove() {
return love;
}
public void setLove(int love) {
this.love = love;
}
public String getStrain() {
return strain;
}
public void setStrain(String strain) {
this.strain = strain;
}
/**
* 输出具体的狗类对象的信息
*/
public void print()
{
System.out.println("宠物自白:我的名字叫"+this.name+"\n健康值为:"+health+"\n和主人的亲密关系"+love+"我是一只"+this.strain);
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Dog dog=new Dog();
dog.setName("拉不拉多犬");
System.out.println(dog.getName());
dog.setHealth(90);
System.out.println(dog.getHealth());
}
}