封装、抽象
封装
什么是封装?
类的封装,是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作访问。
那封装有什么作用
为了不出现一些不合理的代码,对类的变量访问做一些限定,不允许外界随意访问,这就需要实现类的封装
在写代码中,我们将类中的属性私有化使用private关键字,只能在它的类中被访问。
public修饰公共方法,其中包括get和set方法(
外部通过get方法调用该属性,所以需要返回值,set方法是外部对该属性赋值,就不需要返回值
)
public class Animal {
String name;
int age;
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;
}
@Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
测试类
public static void main(String[] args) {
Cat cat = new Cat();
cat.setName("妞妞猫");
cat.setAge(1);
cat.eat();
System.out.println("名字"+cat.getName()+"年龄"+cat.getAge());
}
抽象
什么是抽象类 ?? 我们先来了解一下字面意思。
抽线:众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程
那么我们了解完抽线是什么,在来看一些java中的抽象
抽象类:当一个类中包含了抽象方法,那么该类也必须使用abstract关键字来修饰,这种使用abstract关键字的类就是抽象类。
抽象类的特点:
成员变量:既可以有变量,也可以有常量
成员方法:既可以抽象方法,也可以有非抽象方法
构造方法:可以有构造方法
抽象的格式:
案例:
public abstract class Animal {
String name;
int age;
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;
}
@Override
public String toString() {
return "Animal{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
子类:
public class Cat extends Animal{
public void eat(){
System.out.println("猫吃东西");
}
}
测试类:
public static void main(String[] args) {
Cat cat = new Cat();
cat.setName("妞妞猫");
cat.setAge(1);
cat.eat();
System.out.println("名字"+cat.getName()+"年龄"+cat.getAge());
}
}