《Java程序语言设计》第七章习题,部分代码

 

7-12

package p1;

class AA {

    AA(int a ){

        System.out.println("a="+a);

    }

    }

class BB extends ConstructorDemo{

    BB(String s){

        System.out.println("s="+s);

    }

}

public class ConstructorDemo{

    public static void main(String[] args) {

        BB b =new BB("hello");

    }

}

7-13

package p1;

class Parent{

    void printMe() {

        System.out.println("a");

    }

}

class Child extends Parent{

    void printMe(){

        System.out.println("b");

    }

    void printALL() {

        super.printMe();

        this.printMe();

        printMe();

    }

}

public class Text {

    public static void main(String[] args) {

        Child myC =new Child();

        myC.printALL();

    }

}

a

b

b

7-14

Bird.java

package p1;

public class Bird extends Animal {

    public Bird() {

        System.out.println("n");

    }

    public static void main(String[] args) {

        Bird b = new Bird();

    }

}

package p1;

Animal.java

public class Animal {

   

        public Animal() {

           System.out.println("m");

        }

    }

m

n

7-15

class Super {

    public int i=0;

    public Super(String text) {

        i=1;

    }

}

package p1;

public class Sub extends Super {

    public Sub(String text) {

        i = 2;

    }

    public static void main(String[] args) {

        Sub sub = new Sub("hello");

        System.out.println(sub.i);

    }

}

A

7-16

package p1;

class Alpha{

    String getType() {return "alpha";}

}

class Beta extends Alpha{

    String getType() {return "beta";}

}

class Gamma extends Beta{

    String getType() {

        return "gamma";

    }

    public static void main(String[] args) {

        Alpha g1 =new Beta();

        Alpha g2 =new Gamma();

        System.out.println(g1.getType()+g2.getType());

    }

   

}

Beta gamma

7-18

package p1;

public class MyMain {

    IamAbstract ia = new IamAbstract();

}

 class IamAbstract{

    IamAbstract(){}

}

7-19

package p1;

abstract class AbstractIt {

    abstract float getFloat();

}

package p1;

    public class AbstractTest extends AbstractIt {

        private float f1 = 1.0f;

        float getFloat() {

           return f1;

        }

    }

7-20

AbstractTest.java

package p1;

public class AbstractTest {

    public static void main(String[] args) {

        AA aa = new BB();

        aa.callme();

        aa.metoo();

    }

}

AA.java

package p1;

abstract class AA {

    abstract void callme();

    void metoo() {

        System.out.println("inside aa's metoo().");

    }

}

BB.java

package p1;

class BB extends AA {

    void callme() {

        System.out.println("inside bb's callme().");

    }

    void metoo() {

        System.out.println("inside bb's metoo().");

    }

}

7-21

7-22

package p1;

class Employee{}

class Manager extends Employee{}

class Secretary extends Employee{}

class Programmer extends Employee{}

public class test {

    public static void show(Employee e) {

        if (e instanceof Manager)

           System.out.println("manager");

        else if (e instanceof Secretary)

           System.out.println("Secretary");

        else if (e instanceof Programmer)

           System.out.println("Programmer");

    }

    public static void main(String[] args) {

        Manager m=new Manager();

        Secretary s =new Secretary();

        Programmer p =new Programmer();

        show(m);

        show(s);

        show(p);

    }

}

manager

Secretary

Programmer

7-23

package p1;

class Super {

    public float getNum() {

        return 3.0f;

    }

}

package p1;

public class Sub extends Super {

    public void getNum() {}

}

实训任务1

package p1;

class Animal{

    private double weight;

    public void eat() {

        System.out.println("eat吃掉");}

    public Animal() {

        System.out.println("animal动物");}

    }

class Fish extends Animal{

    public int numberOfFins;

    public void swim() {

        System.out.println("Fish,swim鱼在游");}

    public Fish() {//子类的无参构造方法,第一行必须市super(),继承父类的构造方法。

        super();//java的继承。 在子类的构造方法的第一行,必须是第一行调用super(),这样就调用了父类的构造方法

        System.out.println("super.fish");

        }

}

class Bird extends Animal{

    public int numberOfWings;

    public void fly() {

        System.out.println("Bird,fly鸟在飞");}

    public Bird() {

        super();

        System.out.println("super.bird");

        }

    }

public class animalbirdfish {

    public static void main(String[] args) {

        Bird b =new Bird();//创建一个Bird对象b

        b.numberOfWings=1;//需要对其赋值assign a value before returning

        b.eat();

        b.fly();

        b.toString();//toString ()方法返回反映这个对象的字符串

    }

}

/*

    public class animalbirdfish {

    public static void main(String[] args) {

    Animal animal;

    Bird bird = new Bird();

    bird.eat();

    animal=bird;

    animal.fly();//有错误

    Bird b =(Bird)animal;

    b.fly();

    }

    }

 */

animal动物

super.bird

eat吃掉

Bird,fly鸟在飞

实训任务2

Circle.java

package p1;

public class Circle {//父类方法

    //double centerX;

    //double centerY;

    double radius;

    public Circle() {

        //this(1.0);

    }

    public Circle(double radius) {

        this.radius = radius;

    }

    public double getRadius() {//get方法

        return radius;

    }

    public void setRadius(double radius) {//set方法

        this.radius = radius;

    }

    public double getArea() {

        double area = Math.PI * radius * radius;

        return area;

    }

    public double getPerimeter() {

        double perimeter = 2 * Math.PI * radius;

        return perimeter;

    }

}

    /*

    public static void main(String[] args) {

        Circle c = new Circle();

        System.out.println(c.getRadius());

        c.setRadius(5);

        System.out.println(c.getArea());

        System.out.println(c.getPerimeter());

    }*/

Cylinder.java

package p1;

import java.util.Scanner;

public class Cylinder extends Circle {

    private double height;

    public Cylinder() {}

    public Cylinder(double radius, double height) {//构造方法

        this.radius = radius;

        this.height = height;

    }

    @Override // 重写,告诉编译器检查这个方法,保证父类要包含一个被该方法重写的方法,否则就会编译出错。

    public double getArea() {

        double area = getPerimeter() * height + radius * radius * 3.14 * 2;

        return area;

    }

    public double getVolume() {//定义getVolume()方法求圆柱的面积

        return super.getArea() * height;

    }

    public static void main(String[] args) {

        double radius, height;

        Scanner input = new Scanner(System.in);

        System.out.println("请输入圆柱的底面半径:");

        radius = input.nextDouble();

        System.out.println("请输人圆柱的高:");

        height = input.nextDouble();

        Cylinder c = new Cylinder(radius, height);//构造Cylinder()的对象c

        System.out.println("圆柱表面积是:" + c.getArea());

        System.out.println("圆柱体积是:" + c.getVolume());

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值