chapter08-面向对象编程——(chapter08作业)——day10

目录

343-作业01

344-作业02

345-作业03

346-作业04

347-作业05

348-作业06

349-作业07

350-作业08

351-作业09

352-作业10

353-作业11

354-作业12

355-作业13

357-作业14

358-作业16

359-作业17


343-作业01

package chapter08.homeworks;

public class Homework01 {
    public static void main(String[] args) {
        /*1.定义一个Person类{name, age, job},初始化Person对象数组,有3个person对象,
        并按照age从大到小进行排序,提示,使用冒泡排序 Homework01.java
         */
        Person[] persons = new Person[3];
        persons[0]=new Person("a",10,"JAVA工程师");
        persons[1]=new Person("b",50,"算法工程师");
        persons[2]=new Person("c",35,"PHP工程师");
        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i]);
        }
        Person tmp=null;
        for (int i = 0; i < persons.length-1; i++) {
            for (int j = 0; j < persons.length-1-i; j++) {
                if(persons[j].getAge()<persons[j+1].getAge()){
                    tmp=persons[j];
                    persons[j]=persons[j+1];
                    persons[j+1]=tmp;
                }
            }
        }
        System.out.println("输出排序后,从大到小");
        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i]);
        }
    }
}
class Person{
    private String name;
    private int age;
    private String job;

    public Person(String name, int age, String job) {
        this.name = name;
        this.age = age;
        this.job = job;
    }

    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 String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", job='" + job + '\'' +
                '}';
    }
}

344-作业02

345-作业03

package chapter08.homeworks;

public class HomeWork03 {
    public static void main(String[] args) {
        Professor LDY = new Professor("林黛玉", 20, "教授", 15000, 1.1);
        LDY.introduce();

    }
}
class Teacher{
    private String name;
    private int age;
    private String post;
    private double salary;
    private double grade;

    public Teacher(String name, int age, String post, double salary, double grade) {
        this.name = name;
        this.age = age;
        this.post = post;
        this.salary = salary;
        this.grade = grade;
    }

    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 String getPost() {
        return post;
    }

    public void setPost(String post) {
        this.post = post;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public double getGrade() {
        return grade;
    }

    public void setGrade(double grade) {
        this.grade = grade;
    }


    public void introduce() {
        System.out.println(
                "name='" + name +
                ", age=" + age +
                ", post='" + post +
                ", salary=" + salary +
                ", grade=" + grade
                );
    }
}
package chapter08.homeworks;

public class Professor extends Teacher{
    public Professor(String name, int age, String post, double salary, double grade) {
        super(name, age, post, salary, grade);
    }

    @Override
    public void introduce() {
        System.out.println("这是教师的");
        super.introduce();
    }
}

346-作业04

package chapter08.homeworks;

public class Manager extends Employee{
   private double bonus;

    public Manager(String name, double daySal, int workDays, double grade) {
        super(name, daySal, workDays, grade);

    }

    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }

    @Override
    public void printSal() {
        System.out.println("经理是"+getName()+" 工资是"+(getDaySal()*getWorkDays()*getGrade()+bonus));
    }
}
package chapter08.homeworks;

public class Manager extends Employee{
   private double bonus;

    public Manager(String name, double daySal, int workDays, double grade) {
        super(name, daySal, workDays, grade);

    }

    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }

    @Override
    public void printSal() {
        System.out.println("经理是"+getName()+" 工资是"+(getDaySal()*getWorkDays()*getGrade()+bonus));
    }
}

347-作业05

348-作业06

super只可以继承父类的公共属性和方法

this可以访问本类的所有属性和方法,父类的公共属性和方法,本类有的使用就近原则,不去找父类的了

349-作业07

new Demo().test();

编译阶段,new,无参构造,super()输出Test,再输出Demo,

运行阶段,.test(),Rose,Jack

new Demo().test();

编译阶段,设置父类名称,无输出

运行阶段,john,Jack

350-作业08

package chapter08.homeworks;

public class SavingAccount extends BankAccount{
    private int count=3;
    private double rate=0.01;

    public void earnMonthlyInterest(){
        count=3;
        super.deposit(getBalance()*rate);
    }

    @Override
    public void deposit(double amount) {
        if (count>0){
            super.deposit(amount);
            count-=1;
        }else {
            super.deposit(amount-1);
        }
    }

    @Override
    public void withdraw(double amount) {
        if(count>0){
            super.withdraw(amount);
            count-=1;
        }else {
            super.withdraw(amount+1);
        }

    }

    public SavingAccount(double initialBalance) {
        super(initialBalance);
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public double getRate() {
        return rate;
    }

    public void setRate(double rate) {
        this.rate = rate;
    }
}

351-作业09

352-作业10

353-作业11

向上转型,

编译类型是Person,所以只可以用Person的两个方法

运行类型是Student,动态绑定,找子类Student的方法,所以run调的是子类的方法

总结:向上转型,可以调用父类的所有方法,如果父类中有方法和子类重复,用的是子类的,子类中特有的方法不可以调用

向下转型,p编译是person,指向的是Student,现在把编译也转成Student

编译类型是student,可以调用子类的所有方法,继承父类的方法

运行类型是Student,先运行子类中的方法,如果没有就找父类的

354-作业12

355-作业13

357-作业14

有参构造器有一个父类的super无参构造!是隐藏的,要注意

358-作业16

359-作业17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值