我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

Java_代金鑫_2021.03.10

[复制链接]
心向未来学员认证 发表于 2021-3-10 19:30:04 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
封装:属性设置为private的,封装在类的内部,对外提供public的get/set方法供外部调用。
    好处:在类的内部对参数做一些限制,防止非法调用。
    在类的外部可以访问到属性。
    封装后的,getter setter 可以用IDE自动生成:右键Generate

private String name;
    private int age;
    private float score;
    // 获取属性的值
    public float getScore() {

        return  score;
    }
    // 设置属性的值
    public void setScore(float s){
        if(s<0 || s>150){
            System.out.println("参数不合法!");
        }else{
        score = s;
        }
    }

    public int getAge(){
        return age;
    }
    public void setAge(int a){
        if (a<3||a>30){
            System.out.println("参数不合法");
        }else{
            age = a;
        }
    }

}

继承:使用extends关键字,继承父类的属性和方法,不继承构造结构
           没有显式写extends时,默认是从Object继承的
           每个类只能有一个父类,但是可以有多层继承,比如一个类由一个父类、祖父类、曾祖父类...
           子类除了继承父类的属性和方法,也可以有自己的属性和方法。
           重写Override、重载OverLood的差别:
                    重写:子类重写父类同名的方法
          toString() 构造方法 set/get方法
          super 超类/父类,调用父类的构造方法

class Dog extends Pet {
    private String color;
    public Dog(String name, int age, int health) {
        // super 超类/父类,调用的父类的构造方法
        super(name, age, health);
    }
    public Dog(String name, int age, int health, String color) {
        super(name, age, health);
        this.color = color;
    }
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
}

多态:自类的对象可以当做父类来使用

public class Demo04 {
    // 宠物看病的方法
    public static void  doctor_shenyi(Pet pet){//Pet Pet的子类
        if(pet.getHealth()<50){
            System.out.println("打针");
           pet.setHealth(pet.getHealth()+20);
        }else{
            System.out.println("按摩");
            pet.setHealth(pet.getHealth()+2);
        }
    }
    public static void main(String[] args) {
        Dog dog =new Dog("小白",3,40);
        doctor(dog);
        doctor_shenyi(dog);//方法的定义的是Pet类型的参数,实际传的是Dog的类型
        System.out.println(dog.getHealth());
        Pet pet = new Pet("小小",2,50);
        doctor_shenyi(pet);
        Cat cat = new Cat("加菲",1,80);
        doctor_shenyi(cat);
        TaiDi taiDi = new TaiDi("泰迪",2,70,"白色");
        doctor_shenyi(taiDi);
        doctor(taiDi);
    }
}
class Cat extends Pet{
    public Cat(String name, int age, int health) {
        super(name, age, health);
    }
}

抽象类:abstract  修饰
              1.有抽象方法的类是抽象类,抽象方法只有声明,没有实现
              2.抽象类中既可以有抽象方法,也可以由普通方法
              3.抽象类不能实例化,无法new一个对象
              4.抽象类主要是为了被继承,子类必须实现里面的抽象方法,如果子类不是实现抽象方法子类也只能定义抽象方法
     


回复

使用道具 举报

关注0

粉丝0

帖子23

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备2025058934号-2 )

版权所有 © 西安菁英教育科技有限公司 2023-2026