我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

Java-樊江飞-2021.03.10

[复制链接]
皮皮虾学员认证 发表于 2021-3-10 18:35:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
package day04;
/*
封装:属性设置为private的,封装在类的内部,对外提供public的get/set方法供外部调用。
    好处:在类内部对参数做一些限制,防止非法的调用。
*/
public class Demo01 {
    public static void main(String[] args) {
        Student s1 = new Student("zhangsan",18,90);
        System.out.println(s1);
        //在类的外部可以访问到属性。
        s1.name = "张三";  //设置获取属性,实例,属性名
        s1.score = 99;    // 0~150
        System.out.println(s1);
        //设置的分数不合理,也能设置
        s1.score = -500;
        System.out.println(s1);

        Student1 s2 = new Student1("lisi",18,90);
        System.out.println(s2);
        //s2.name = "李四"; //私有的属性在外部无法访问
        //s2.score = 99;
        s2.setScore(100);
        System.out.println(s2.getScore());
        s2.setAge(2);
        System.out.println(s2.getAge());
    }
}

//未封装
class Student{
    String name;
    int age;
    float score;

    public Student(String name, int age, float score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }
}
//封装后的
class Student1{
    private String name;
    private int age;
    private float score;

    //获取属性值
    public int getAge(){
        return age;
    }
    //设置属性值
    public void setAge(int a){
        if ( a < 3 || a > 30 ){
            System.out.println("你输入的参数不合法");
        }else {
            age = a;
        }
    }
    //获取属性的值
    public float getScore(){
        return score;
    }
    //设置属性的值
    public void setScore(float s){
        if ( s < 0 || s > 150 ){
            System.out.println("参数不合法");
        }else {
            score = s;
        }
    }

    public Student1(String name, int age, float score) {
        this.name = name;
        this.age = age;
        this.score = score;

    }
    @Override
    public String toString() {
        return "Student1{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", score=" + score +
                '}';
    }
}
//封装后的,
//getter setter 可以用IDE自动生成:右键Generate
class Student2{
    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;
    }

    public float getScore() {
        return score;
    }

    public void setScore(float score) {
        this.score = score;
    }

    private float score;}
package day04;
/*,
继承:使用extends关键字,继承父类的属性和方法,不继承构造方法
    没有显式写extends时,默认是从object继承的
    每个类只能有一个父类,但是可以有多层的关系,比如用一个父类,一个祖父类,曾祖父类......
    子类除了继承父类的属性和方法,也可以有自己的属性和方法。
    重写override、重载overload的差别
        重新:子类重写父类同名的方法。
        重载:
*/
public class Demo02 {
    public static void main(String[] args) {
        Dog dog = new Dog("小黑",11,100);
        System.out.println(dog);
        dog.setHealth(90);  //继承了父类的方法
        System.out.println(dog.getHealth());

        Dog dog2 =new Dog("拉布拉多",5,100,"白色");
        System.out.println(dog2);   //Pet toString
    }
}
class Pet{
    private String name;
    private int age;
    private int health;

    public Pet(String name, int age, int health) {
        this.name = name;
        this.age = age;
        this.health = health;
    }
    @Override
    public String toString() {
        return "Pet{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", health=" + health +
                '}';
    }
    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 int getHealth() {
        return health;
    }

    public void setHealth(int health) {
        this.health = health;
    }
}
/*
    创建一个宠物类,pet
    属性:string name,age,health
    tostring()  构造方法  set/get方法
     */
/*
宠物狗从宠物类继承:从父类继承属性和方法,不继承构造方法
*/
class Dog extends Pet{

     private  String color;

     public Dog(String name, int age, int health, String color) {
         super(name, age, health);
         this.color = color;
     }

     public Dog(String name, int age, int health) {
        //super 超类/父类,调用父类的构造方法
        super(name, age, health);
    }
     @Override
     public String toString() {
         return "Dog{" +
                 "color='" + color + '\'' +
                 "} " + super.toString();
     }
}

回复

使用道具 举报

关注0

粉丝0

帖子25

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

客服电话:17792550360

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

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

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