1.封装的概述
封装是面对对象的三大特征之一(封装,继承,多态)
封装是面对对象编程语言定义客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的内外部是无法直接操作的
2.封装的原则
将类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供相对应的getxxx();setxxx();方法。
3.封装的好处
通过方法来空hi成员变量的操作,提高了代码的安全性,
把代码用方法进行封装,提高了代码的复用性
示例 cat类 dog类 animal类 animaldemo类
需求:
.请采用继承的思想实现猫和狗的案例,并在测试类中进行测试
思路:
1.定义动物类(animal)
.成员变量:姓名,年龄
.构造方法:带参,无参
.成员方法:get/set方法
2.定义猫类(cat)继承动物类
.构造方法:带参,无参
.成员方法:抓老鼠
3.定义狗类(dog)继承动物类
.构造方法:带参,无参
.成员方法:看门
4.定义测试类(animaldemo),写测试代码
cat
package 继承案例_猫和狗;
public class cat extends animal {
//---------构造方法----------------------------
/**
*
*/
public cat() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public cat(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
//----------抓老鼠----------------------------
public void catchmouse() {
System.out.println("抓老鼠");
}
}
dog
package 继承案例_猫和狗;
public class dog extends animal {
//---------构造方法----------------------------
/**
*
*/
public dog() {
super();
// TODO 自动生成的构造函数存根
}
/**
* @param name
* @param age
*/
public dog(String name, int age) {
super(name, age);
// TODO 自动生成的构造函数存根
}
//-----------看门----------------------------
public void lookdoor() {
System.out.println("看门");
}
}
animal
package 继承案例_猫和狗;
public class animal {
//---------成员变量----------------------------
private String name;
private int age;
//---------构造方法----------------------------
/**
*
*/
public animal() {
}
/**
* @param name
* @param age
*/
public animal(String name, int age) {
this.name = name;
this.age = age;
}
//---------构造方法----------------------------
/**
* @return name
*/
public String getName() {
return name;
}
/**
* @param name 要设置的 name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return age
*/
public int getAge() {
return age;
}
/**
* @param age 要设置的 age
*/
public void setAge(int age) {
this.age = age;
}
}
animaldemo
package 继承案例_猫和狗;
public class animaldemo {
/*
需求:
.请采用继承的思想实现猫和狗的案例,并在测试类中进行测试
思路:
1.定义动物类(animal)
.成员变量:姓名,年龄
.构造方法:带参,无参
.成员方法:get/set方法
2.定义猫类(cat)继承动物类
.构造方法:带参,无参
.成员方法:抓老鼠
3.定义狗类(dog)继承动物类
.构造方法:带参,无参
.成员方法:看门
4.定义测试类(animaldemo),写测试代码
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
cat c = new cat("tom",20);
System.out.print(c.getAge()+"岁的猫 "+c.getName()+" 喜欢");
c.catchmouse();
c.setAge(18);
c.setName("德瓦西");
System.out.print(c.getAge()+"岁的猫 "+c.getName()+" 喜欢");
c.catchmouse();
dog d = new dog("旺财",18);
System.out.print(d.getAge()+"岁的狗 "+d.getName()+" 喜欢");
d.lookdoor();
d.setAge(188);
d.setName("德瓦西龙");
System.out.print(d.getAge()+"岁的狗 "+d.getName()+" 喜欢");
d.lookdoor();
}
}