实验要求实验过程
实验要求1、修改Pet类为抽象类,Pet类中的eat方法为抽象方法,输出Dog信息
2、设计Bird、Fish类,都继承自抽象类Animal,实现其方法info(),并打印它们的信息。
3、Engine(引擎),具有power(功率,整数)属性,相对应的setter和getter方法,work()方法:输出"xx功率的发动机在运转"。Car(Engine轿车),具有Engine属性,相对应的setter和getter方法,run()方法,在方法中判断Engine对象是否为null,选择输出"发动机发动不了"或者"xx功率的发动机在运转,汽车在跑"。Benz(奔 驰),继承Car类,重写run()方法Driver(驾驶员),具有属性name(姓名),相对应的setter和getter方 法,driveCar(Benz benz)方法,在方法中输出“xxx 在开车”,并调用benz的run()方法。
4、写一个名为 Account 的类模拟账户。该类的属性和方法如下图所示。该类包括的属性:账号id,余额 balance,年利率 annualInterestRate;包含的方法:访问器方法(getter 和setter 方法),返回月利率的方法 getMonthlyInterest(),取款方法 withdraw(),存款方法deposit()。创建 Account 类的一个子类 CheckAccount 代表可透支的账户,该账户中定义一个属性overdraft 代表可透支限额。在CheckAccount 类中重写 withdraw 方法,其算法如下:如果(取款金额<账户余额),可直接取款如果
(取款金额>账户余额),计算需要透支的额度判断可透支额 overdraft 是否足够支付本次透支需要,如果可以将账户余额修改为 0,冲减可透支金额如果不可以提示用户超过可透支额的限额
5、java类是否可以多继承,怎么实现多继承?
6、代码阅读
class A { int a = 1; double d = 2.0; void show() { System.out.println("Class A: a=" + a + "td=" + d); } } class B extends A { float a = 3.0f; String d = "Java program."; void show() { super.show(); System.out.println("Class B: a=" + a + "td=" + d); } } class Test{ public static void main(String[] args){ A a=new A(); a.show(); System.out.println(a.a); // A b=new B(); // b.show(); // System.out.println(b.a); } }
7、代码阅读题
class Father { public int get() { return 1; } } class Sun extends Father { public long get() { return 2; } public static void main(String[] args) { Father s = new Sun(); System.out.println(s.get()); } }
8、编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
9、定义员工类Employee,包含姓名、工号和工资,包含计算奖金方法bonus,普通员工和经理都是员工,计算奖金的方法为工资*奖金系数,普通员工的奖金系数为1.5(常量),经理为2(常量),分别实现bonus方法,创建对象测试。
10、封装一个西游记人物类Person:包含私有属性:姓名(name)、身高(height)、武器(weapon)、种族(race),并提供get方法和set方法。在测试类中实例化三个对象:tangseng(唐僧)、sunwukong(孙悟空)、baigujing(白骨精),分别设置他们的种族为:人族、仙族、妖族在
打印对象时,按照例如:“姓名:孙悟空;种族:仙族”的格式在控制台输出信息。提供一个技能方法void skill(),这个方法根据当前对象name属性判断技能,如果是孙悟空,就打印“七十二变”,如果是唐僧,就打印“紧箍咒”,如果是白骨精,就打印“九阴白骨爪”,在测试类中调用这个方法。
11、阅读如下代码
class Super { int i = 0; public Super(String a) { System.out.println("A"); i = 1; } public Super() { System.out.println("B"); i += 2; } } class Demo extends Super { public Demo(String a) { System.out.println("C"); i = 5; } public static void main(String[] args) { int i = 4; Super d = new Demo("A"); System.out.println(d.i); } }
12、判断下列代码是否正确
class Super { int i = 0; public Super(String s) { i = 1; } } class Demo extends Super { public Demo(String s) { //默认有一句话super(); 去找父类的无参构造,但是没找到, //直接编译错。如何修改? super(s); i = 2; } public static void main(String[] args) { Demo d = new Demo("yes"); System.out.println(d.i); } }
13、判断
//阅读以下代码,可以正常填入class Sun中的方法的是 class Father{ public String test(){ return "father"; } } class Sun extends Father{ } A.public void test(){} B.public void test(String s){} C.public String test(int i){return "";} D.public int test(int i){return 1;} E.public int test(){}
练习:1、某汽车租赁公司出租多种车辆,车型及租金情况如下:
实验过程
1、修改Pet类为抽象类,Pet类中的eat方法为抽象方法,输出Dog信息
2、设计Bird、Fish类,都继承自抽象类Animal,实现其方法info(),并打印它们的信息。
3、Engine(引擎),具有power(功率,整数)属性,相对应的setter和getter方法,work()方法:输出"xx功率的发动机在运转"。Car(Engine轿车),具有Engine属性,相对应的setter和getter方法,run()方法,在方法中判断Engine对象是否为null,选择输出"发动机发动不了"或者"xx功率的发动机在运转,汽车在跑"。Benz(奔 驰),继承Car类,重写run()方法Driver(驾驶员),具有属性name(姓名),相对应的setter和getter方 法,driveCar(Benz benz)方法,在方法中输出“xxx 在开车”,并调用benz的run()方法。
4、写一个名为 Account 的类模拟账户。该类的属性和方法如下图所示。该类包括的属性:账号id,余额 balance,年利率 annualInterestRate;包含的方法:访问器方法(getter 和setter 方法),返回月利率的方法 getMonthlyInterest(),取款方法 withdraw(),存款方法deposit()。创建 Account 类的一个子类 CheckAccount 代表可透支的账户,该账户中定义一个属性overdraft 代表可透支限额。在CheckAccount 类中重写 withdraw 方法,其算法如下:如果(取款金额<账户余额),可直接取款如果
(取款金额>账户余额),计算需要透支的额度判断可透支额 overdraft 是否足够支付本次透支需要,如果可以将账户余额修改为 0,冲减可透支金额如果不可以提示用户超过可透支额的限额
5、java类是否可以多继承,怎么实现多继承?
类只可以单继承,Java中接口可以实现多继承
6、代码阅读
class A { int a = 1; double d = 2.0; void show() { System.out.println("Class A: a=" + a + "td=" + d); } } class B extends A { float a = 3.0f; String d = "Java program."; void show() { super.show(); System.out.println("Class B: a=" + a + "td=" + d); } } class Test{ public static void main(String[] args){ A a=new A(); a.show(); System.out.println(a.a); A b=new B(); b.show(); System.out.println(b.a); } }
Class A: a = 1 d = 2.0
1
Class A: a = 1 d = 2.0
Class B: a = 3.0 d = Java program.
1
多态调用时成员变量走前面的类,方法走后面的类
7、代码阅读题
class Father { public int get() { return 1; } } class Sun extends Father { public long get() { return 2; } public static void main(String[] args) { Father s = new Sun(); System.out.println(s.get()); } }
2(同上一题一个概念)
8、编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
9、定义员工类Employee,包含姓名、工号和工资,包含计算奖金方法bonus,普通员工和经理都是员工,计算奖金的方法为工资*奖金系数,普通员工的奖金系数为1.5(常量),经理为2(常量),分别实现bonus方法,创建对象测试。
10、封装一个西游记人物类Person:包含私有属性:姓名(name)、身高(height)、武器(weapon)、种族(race),并提供get方法和set方法。在测试类中实例化三个对象:tangseng(唐僧)、sunwukong(孙悟空)、baigujing(白骨精),分别设置他们的种族为:人族、仙族、妖族在
打印对象时,按照例如:“姓名:孙悟空;种族:仙族”的格式在控制台输出信息。提供一个技能方法void skill(),这个方法根据当前对象name属性判断技能,如果是孙悟空,就打印“七十二变”,如果是唐僧,就打印“紧箍咒”,如果是白骨精,就打印“九阴白骨爪”,在测试类中调用这个方法。
11、阅读如下代码
class Super { int i = 0; public Super(String a) { System.out.println("A"); i = 1; } public Super() { System.out.println("B"); i += 2; } } class Demo extends Super { public Demo(String a) { System.out.println("C"); i = 5; } public static void main(String[] args) { int i = 4; Super d = new Demo("A"); System.out.println(d.i); } }
B(对子类进行实例化时会调用父类的无参构造方法)
C
5
12、判断下列代码是否正确
class Super { int i = 0; public Super(String s) { i = 1; } } class Demo extends Super { public Demo(String s) { //默认有一句话super(); 去找父类的无参构造,但是没找到, //直接编译错。如何修改? super(s); i = 2; } public static void main(String[] args) { Demo d = new Demo("yes"); System.out.println(d.i); } }
2
13、判断
//阅读以下代码,可以正常填入class Sun中的方法的是 class Father{ public String test(){ return "father"; } } class Sun extends Father{ } A.public void test(){} B.public void test(String s){} C.public String test(int i){return "";} D.public int test(int i){return 1;} E.public int test(){}
A、C、E
练习:1、某汽车租赁公司出租多种车辆,车型及租金情况如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)