JAVA课后作业(第五章)

5.1

package england.people;
import american.people.Son;
import japan.people.Grandson;
public class Ex05_1 {
    public static void main(String[] args) {
        Son son = new Son();
        Grandson grandson = new Grandson();
        son.height = 180;
        son.hand = "一双大手";
        grandson.height = 155;
        grandson.hand = "一双小脚";
        String str = son.getHand();
        System.out.println("儿子:%s,%d\n",str,son.height);
        str = grandson.getHand();
        System.out.println("孙子:%s,%s,%d\n",str,grandson.foot,grandson.height);
    }
}

5.3

class People {
    public double x;
    public void setX(double x) {
        this.x = x;
    }
    public double getDoubleX(){
        return x;
    }
}
class Student extends People {
    int x;
    public int getX(){
        //x=20.56;
        return x;
    }
}
public class Ex05_3 {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.x = 98;              //合法,子类对象的x是int型
        System.out.println("对象stu的x的值是:"+stu.getX());
        //stu.x = 98;            //非法,因为子类对象的x已经是int型
        stu.setX(98.98);         //子类对象调用继承的方法操作隐形的double型变量x
        double m = stu.getDoubleX();//子类对象调用继承的方法操作隐藏的double型变量x
        System.out.println("对象stu隐藏的x的值是:"+m);
    }
}

5.4

class A {
    double f (float x,float y) {
        return x + y;
    }
    public int g(int x,int y) {
        return x + y;
    }
}
class B extends A {
    double f(float x,float y) {
        return x*y;
    }
}
public class Ex05_4 {
    public static void main(String[] args) {
        B b = new B();
        double result = b.f(5,6);           //b调用重写的方法
        System.out.println("调用重写方法得到的结果:"+result);
        int m = b.g(3,5);                   //b调用继承的方法
        System.out.println("调用继承方法得到的结果:"+m);
    }
}

5.6

public class Ex05_6 {
    public static void main(String[] args) {
        UniverStudent zhang = new UniverStudent(20111,"张三",false);
        int number = zhang.getNumber();
        String name = zhang.getName();
        boolean marriage = zhang.getIsMarriage();
        System.out.println(name+"的学号是:"+number);
        if(marriage == true) {
            System.out.println(name+"已婚");
        }
        else {
            System.out.println(name + "未婚");
        }
    }
}

5.7

public class Ex05_7 {
    public static void main(String[] args) {
        Average aver = new Average();
        aver.n = 100.5678;
        double result1 = aver.f();
        double result2 = aver.g();
        System.out.println("result1 ="+result1);
        System.out.println("result2 ="+result2);
    }
}

5.9

public class Ex05_9 {
    public static void main(String[] args) {
        People  people = new People();
        Anthropoid monkey = people;               //monkey是people对象的上传型对象
        monkey.crySpeak("I love this game");      //等同于people调用重写的crySpeak方法
        //monkey.n = 100;                         //非法,因为n是子类新增的成员变量
        //monkey.computer(12,19);                 //非法,因为computer()是子类新增的方法
        System.out.println(monkey.m);             //操作隐藏的m,不等同于people.m
        System.out.println(people.m);             //操作子类的m
        People zhang = (People)monkey;            //把上转型对象强制转化为子类的对象
        zhang.computer(55,33);                    //zhang是子类的对象
        zhang.m = "T";                            //操作子类声明的成员的变量m
        System.out.println(zhang.m);
    }
}

5.11

import com.sun.corba.se.spi.legacy.connection.GetEndPointInfoAgainException;

abstract class GirlFriend {//抽象类,封装了两个行为标准
    abstract void speak();
    abstract void cooking();
}
class ChinaGirlFriend extends GirlFriend {
    void speak(){
        System.out.println("你好");
    }
    void cooking() {
        System.out.println("水煮鱼");
    }
}
class AmericanGirlFriend extends GirlFriend {
    void speak(){
        System.out.println("hello");
    }
    void cooking(){
        System.out.println("roast beef");
    }
}
class Boy(
        GirlFriend friend;
        void setGirlFriend(GirlFriend f){
            friend = f;
        }
        void showGirlFriend() {
            friend.speak();
            friend.cooking();
        }
)
public class Ex05_11 {
    public static void main(String[] args) {
        GirlFriend girl = new ChinaGirlFriend();       //girl是上转型对象
        Boy boy = new Boy();
        boy.setGirlfriend(girl);
        boy.showGirlFriend();
        girl = new AmericanGirlFriend();               //girl是上转型对象
        boy.showGirlFriend();
    }
}

5.13

public class Ex05_13 {
    public static void main(String[] args) {
        Simulator simulator = new Simulator();
        simulator.playSound(new Dog());
        simulator.playSound(new Cat());
    }
}

5.14

import java.awt.print.Printable;

public class Ex05_14 {
    public static void main(String[] args) {
        AAA a = new AAA();
        System.out.println("接口中的常量"+AAA.MAX);
        System.out.println("调用on方法(重写的):");
        a.on();
        System.out.println("调用sum方法(重写的):"+a.sum(12,18));
        System.out.println("调用接口提供的default方法"+a.max(12,78));
        Printable.f();
    }
}

编程1

public class A {
    public void f() {
        for (int i = 97; i <123; i++)
        {
            System.out.print((char)i);

        }
        System.out.println();
    }

}
public class B extends A {

    public void g() {
        for (int i = 65; i <91; i++)
        {
            System.out.print((char)i);

        }
        System.out.println();
    }

}

public class C {

    public static void main(String[] args) {
    A a=new A();
    a.f();
    B b=new B();
    b.f();
    b.g();
    }
}

编程2

class A {
    //求最小公约数
    public int f(int a,int b) {
        int max,min,r;
        if(a<b) {
            max = b;
            min = a;
        }
        else {
            max = a;
            min = b;
        }
        while((r=max%min)!=0) {
            max = min;
            min = r;
        }
        return min;
    }
}

class B extends A {
    public int f(int a,int b) {
        int m = super.f(a,b);
        return (a*b)/m;
    }
}
class C {
    public static void main(String[] args) {
        A a = new A();
        System.out.println("最大公约数="+a.f(5,10));

        B b = new B();
        System.out.println("最小公倍数="+b.f(5,10));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值