我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

Java_白李娜_20210310

[复制链接]
つ兜兜里没糖学员认证 发表于 2021-3-10 19:16:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
1.封装:属性设置为私有的private,封装在类的内部,对外提供public的get/set方法供外部调用
           好处:在类的内部对参数做一些限制,防止非法调用class Student1{
    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;
        }
    }

}
2.继承:使用extends关键字,继承弗雷德属性,不能继承构造方法
  没有显式写extends时,默认是从Object继承的
  每个类只能有一个父类,但是可以多层继承。比如,一个类有父类,祖父类,曾祖父类...
  子类除了继承父类的方法,也可以有自己的属性和方法
  Override 重写  子类重写父类同名的方法
  OverLoad 重载
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;
    }
}
3.多态:子类的对象可以当做父类的对象来使用
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);
    }
}

4.抽象类 abstract修饰
  有抽象方法的类是抽象类,只有声明,没有实现
  抽象类中既可以有抽象方法,也可以有普通方法
  抽象类无法实例化,不能去new一个对象
  抽象类主要是为了被继承
    子类必须实现里面的抽象方法,如果子类不实现抽象方法,子类也只能被看成一个抽象类
5.接口 interface    特殊的抽象类
  接口的方法是抽象方法,没有普通方法。方法默认是public abstract 修饰的
  接口中的成员变量是常量。默认是public static final修饰的
  接口中不能有构造方法
  接口采用的是多继承的机制,一个类可以实现多个接口
6.final关键字
  修饰类:类不能被继承
  修饰方法 : 不能被子类重写
  修饰成员变量: 只能被赋值一次,不能修改
  修饰局部变量: 只能被赋值一次,不能修改

7.static 静态
  修饰成员变量  类名.变量 调用
  修饰方法   类名.方法名 调用
8.package 包
  public  :修饰类,方法,成员变量,可以被其他类访问,类同名时,把包名带上  protected :修饰方法,成员变量,被 子类,以及子类的子类访问
  private :修饰成员变量,方法,限制了只能在类内部访问
  缺省 : 修饰类,方法,变量,在当前包生效











回复

使用道具 举报

关注0

粉丝0

帖子30

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

客服电话:17792550360

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

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

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