1 封装
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的步骤
[1]属性私有化
[2]提供公共的设置器和访问器
[3]在设置器和访问器中添加业务校验逻辑
public class Dog{
// 【1】private 私有的,对外不可见
private String name;
private int health;
private int love;
private String strain;
// 【2】提供公共的设置器(setter)和访问器(getter)
public void setName(String name){
// 【3】逻辑校验
if(name.equals("")){
System.out.println("姓名不能为空.");
}else{
this.name = name;
}
}
public String getName(){
return this.name;
}
public void setHealth(int health){
if(health < 0){
System.out.println("健康值不合法.");
this.health = 0;
}else{
this.health = health;
}
}
public int getHealth(){
return this.health;
}
public void setLove(int love){
if(love < 0){
System.out.println("亲密度不合法.");
this.love = 0;
}else{
this.love = love;
}
}
public int getLove(){
return this.love;
}
public void setStrain(String strain){
if(strain.equals("")){
System.out.println("品种不能为空.");
}else{
this.strain = strain;
}
}
public String getStrain(){
return this.strain;
}
public Dog(){
}
public Dog(String name,int health,int love,String strain){
this.setName(name);
this.setHealth(health);
this.setLove(love);
this.setStrain(strain);
}
public void showInfo(){
System.out.print("我的名字叫"+this.name);
System.out.print(",健康值"+this.health);
System.out.print(",亲密度"+this.love);
System.out.println(",我是一只"+this.strain);
}
}
2 静态常量
果一个量的值不会发生改变,可以把该量声明为静态常量,用static final修饰。
public classPenguin{privateString name;private inthealth;private intlove;privateString gender;static final String SEX_MALE = "雄";static final String SEX_FEMALE = "雌";public voidsetName(String name){this.name =name;
}publicString getName(){return this.name;
}public void setHealth(inthealth){if(health>100 && health<1){this.health = 60;
System.out.println("健康值必须在1-100之间,默认为60");
}else{this.health =health;
}
}public intgetHealth(){return this.health;
}public voidsetLove(String love){this.love =love;
}public intgetLove(){return this.love;
}public voidsetGender(String gender){this.gender =gender;
}publicString getGender(){return this.gender;
}publicPenguin(){
}publicPenguin(String name,String gender){this.setName(name);this.setGender(gender);
}public Penguin(String name,int health,intlove,String gender){this(name,gender);this.setHealth(health);this.setLove(love);
}public voidshowInfo(){
System.out.print("我的名字叫"+name);
System.out.print(",健康值"+health);
System.out.print(",亲密度"+love);
System.out.println(",性别"+gender);
}
}public classTest02{public static voidmain(String[] args){
Penguin penguin= new Penguin("大脚",100,0,Penguin.SEX_MALE);
}
}