这里写目录标题
java封装(笔记)
1、封装特点?
1、将类的某些信息属性隐藏在类内部,不允许外部直接访问
2、通过该类提供的方法(让外部)实现该内的隐藏的信息访问。
3、面向对象的三大特征之一
2、如何实现封装?
封装的例子
/**
* 宠物狗狗类
*/
public class Dog {
//1.隐藏属性
private String name = "无名氏"; // 昵称,默认值是"无名氏"
private int health = 100; // 健康值,默认值是100,健康值在0-100之间,小于60为不健康
private int love = 0; // 亲密度,在0-100之间
private String strain = "聪明的拉布拉多犬"; // 品种
//2.添加属性的setter/getter方法,并加入属性控制语句
//setter:属性赋值;属性的操作(正确判断等)
//getter:属性取值
public void setHealth(int health){
if(health<0 || health>100){
System.out.println("宠物狗狗的健康值只能在0-100之间!");
this.health = 60;
return;
}
this.health = health;
}
public int getHealth(){
return this.health;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setLove(int love){
if(love<0 || love>100){
System.out.println("宠物狗狗的亲密度只能在0-100之间!");
this.love = 60;
return;
}
this.love = love;
}
public int getLove(){
return this.love;
}
public void setStrain(String strain){
this.strain = strain;
}
public String getStrain(){
return this.strain;
}
/**
* 输出狗狗的信息
*/
public void print() {
System.out.println("宠物的自白:\n我的名字叫" + this.name +
",健康值是" + this.health + ",和主人的亲密度是"
+ this.love + ",我是一只 " + this.strain + "。");
}
}
测试类
public class TestPet {
public static void main(String[] args) {
Dog dog=new Dog();
// dog.health=-1000;
dog.setHealth(-1000);
System.out.println(dog.getHealth());
/*dog.love=3;
dog.name="多多";
dog.strain="吉娃娃";*/
dog.setLove(-9);
dog.setName("多多");
dog.setStrain("吉娃娃");
dog.print();
/*Penguin p=new Penguin();
p.health=-1000;
p.love=3;
p.name="Q仔";
p.sex="男";
p.print();*/
}
}