- 隐藏信息,有利于数据安全性
- 有利于类内部信息的修改
- 调压者只需调用,无需了解实现过程
具体实例
public class Student {
// 定义了私有字符串变量name
private String name;
// 定义了私有整型变量age
private int age;
// 定义了对应的get/set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
//创建Student类对象s1
Student s1 = new Student();
//对象s1设置set方法设置name变量为小明
s1.setName("小明");
//对象s1设置set方法设置age变量为18
s1.setAge(18);
// 通过对象s1调用get方法输出
System.out.println("我的名字叫"+s1.getName()+",现在"+s1.getAge()+"岁");
}
}
运行结果:
我的名字叫小明,现在18岁
public class Animal { // 定义父类Animal
public void run() { //定义父类方法run()
System.out.println("动物正在跑");
}
}
public class Dog extends Animal { //定义子类方法Dog
public void eat() { // 定义子类方法eat()
System.out.println("动物正在吃");
}
}
public class Demo {
public static void main(String[] args) {
// 创建对象调用方法
Animal animal = new Animal();
animal.run();
Dog dog = new Dog();
// 子类调用父类方法run()
dog.run();
dog.eat();
}
}
运行结果:
动物正在跑
动物正在跑
动物正在吃
- 灵活性
- 可替换性
public class Animal {
public void run() {
System.out.println("动物正在跑");
}
}
public class Dog extends Animal {
@Override
public void run() {
System.out.println("狗正在跑");
}
public void eat() {
System.out.println("狗正在吃狗粮");
}
}
public class Demo {
public static void main(String[] args) {
// 创建父类指向子类
Animal animal = new Dog();
animal.run();
}
}
运行结果:
狗正在跑
转载请注明:XAMPP中文组官网 » JAVA 封装_JAVA面向对象三大特性实例详解