封装性:
封装性的实现:通过私有化属性(private)的方式,对属性进行私有化。再通过公共的(public)get()和set()方法对该属性进行获取和设置。
public class Person {
private 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;
}
}
可以在set()方法中对设置的值进行一定条件的限制。如下图对age的设置。
public void setAge(int age) {
if( 0 < age && age < 150){
this.age = age;
}else{
this.age = 0;
}
封装性的优点:
1、保护类中的属性安全。
2、增加程序的可维护性。
权限修饰符:
从大到小:public protect default(缺省) pravite
继承性:
继承性的理解:
一个类继承另一个类。继承的类称为子类,被继承的类称为父类。子类一旦继承了父类,那么就继承了父类的属性和方法。
Java的继承规定:
1、父类可以有自己的父类。
2、一个子类只能有一个直接父类,可以有多个间接父类。
3、一个父类可以有多个父类。
代码实现:
public class Father {
private String name;
private 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;
}
}
class Son extends Father{
}
class Test{
public static void main(String[] args) {
Son son = new Son();
son.setAge(12);
son.setName("Zgs");
System.out.println("名字:" + son.getName() + " 年龄:" + son.getAge());
}
}
优点:
1、减少了代码的冗余
2、便于功能拓展
3、为以后的多态性提供了前提
多态性:
父类的引用指向子类的对象,消除类型之间的耦合关系。
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
实现多态性的三个必要条件:
1、继承
2、重写:在有继承的前提下,子类对父类的方法进行重定义。
3、向上转型:子类引用的对象转换为父类类型
定义格式:父类类型 变量名=new 子类类型();
编译看左边,运行看右边:编译时看父类有没有此方法,如果没有,则编译错误。如果父类有此方法,则执行子类重写的方法,如果子类没有重写方法,则会调用父类的方法。
具体代码:
public class Animal {
public void eat(){
System.out.println("动物吃东西");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("🐱吃🐟");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("🐕吃骨头");
}
}
测试类:
public class Test {
public static void main(String[] args) {
Animal cat = new Cat();
Animal dog = new Dog();
cat.eat();
dog.eat();
}
}