当前位置:   article > 正文

Java进阶练习题—接口、继承、调用_java 继承 接口练习题

java 继承 接口练习题

        题目 1:有个接口Camera,包含一个方法void takePicture()。现在有类CellPhone和IWatch如下,Travel类中的snap方法,需要一个参数Carema,现在请改造Cellphone和IWatch类,满足测试样例的输出要求 

        思路:如果一个类要使用接口,必须重构接口中的方法。接口 interface lei,调用 implemengts lei,不要忘记重构方法。

        样例测试:

        答案代码:

  1. interface Camera{
  2. void takePicture();
  3. }
  4. class CellPhone implements Camera{
  5. String name;
  6. public CellPhone(String name){
  7. this.name=name;
  8. }
  9. public void takePicture()
  10. {
  11. System.out.println("picture by "+name+" cellphone");
  12. }
  13. }
  14. class IWatch implements Camera{
  15. String name;
  16. public IWatch(String name){
  17. this.name=name;
  18. }
  19. public void takePicture()
  20. {
  21. System.out.println("picture by "+name+" iwatch");
  22. }
  23. }
  24. class Travel{
  25. public void snap(Camera c){
  26. c.takePicture();
  27. }
  28. }

        题目 2:观察以下代码,在注释部分添加代码。要求在Student类中,(task1)添加一个有name和ID两个参数的构造方法,对成员变量name和ID进行初始化,(task2)实例化一Student对象,学生姓名:Yaoming,ID:123456,通过两次调用addScore,给总分分别加上90和95,利用getTotalScore()输出名字+总分。注:使用System.out.println()方法输出。

        思路:对成员变量进行初始化,只需要public lei(String name){this.name=name}.实例初始化 lei a =new lei("yaoming"),然后调用公用的方法

        样例测试:

        答案代码:

  1. public class Test {
  2. public static void main(String[] args) {
  3. //task2:write code here
  4. Student student =new Student("Yaoming",123456);
  5. student.addScore(90);
  6. student.addScore(95);
  7. System.out.println(student.getTotalScore());
  8. }
  9. }
  10. class Student{
  11. private String name;
  12. private int ID;
  13. private int total;
  14. //task1:write code here
  15. public Student(String name,int ID)
  16. {
  17. this.name=name;
  18. this.ID=ID;
  19. }
  20. public void addScore(int score){
  21. total+=score;
  22. }
  23. public String getTotalScore(){
  24. return name+":"+String.valueOf(total);
  25. }
  26. }

        题目 3:设计一个矩形类Rectangle,包含私有的数据成员宽度(Width)和高度(Height);公有的方法double getArea()返回矩形的面积,公有的方法double getPerimeter()返回矩形的周长。

        思路:设置私有数据成员private int ID ,设计公有方法,返回相应的数值

        样例测试:

        答案代码:

  1. class Rectangle
  2. {
  3. private double Width;
  4. private double Height;
  5. public Rectangle(double Width,double Height)
  6. {
  7. this.Width =Width;
  8. this.Height=Height;
  9. }
  10. public double getArea()
  11. {
  12. return Width*Height;
  13. }
  14. public double getPerimeter()
  15. {
  16. return 2*(Width+Height);
  17. }
  18. }

        题目 4:设计一个名为Person的类和它的两个名为Student和Employee的子类。Person类有私有成员变量:姓名、地址、电话号码和邮箱。Student类有私有成员变量:年级,Employee类有私有成员变量:部门和工资。要求各个类都定义带参数的构造方法,对私有数据成员进行初始化。各个类中定义公有的show()方法,输出该类对象的成员变量值。说明:成员变量“工资”为 int 类型

        思路:继承父类 class a extends b ,继承父类的变量,super(String name),调用父类的方法,super.show();

        样例测试:

        答案代码: 

  1. class Person
  2. {
  3. private String name;
  4. private String add;
  5. private String tele;
  6. private String ema;
  7. public Person(String name,String add,String tele,String ema)
  8. {
  9. this.name=name;
  10. this.add=add;
  11. this.tele=tele;
  12. this.ema=ema;
  13. }
  14. public void show()
  15. {
  16. System.out.print(name+","+add+","+tele+","+ema);
  17. }
  18. }
  19. class Student extends Person
  20. {
  21. private String nian;
  22. public Student(String name,String add,String tele,String ema,String nian)
  23. {
  24. super(name,add,tele,ema);
  25. this.nian=nian;
  26. }
  27. public void show()
  28. {
  29. super.show();
  30. System.out.println(","+nian);
  31. }
  32. }
  33. class Employee extends Person
  34. {
  35. private String bu;
  36. private int gong;
  37. public Employee(String name,String add,String tele,String ema,String bu,int gong)
  38. {
  39. super(name,add,tele,ema);
  40. this.bu=bu;
  41. this.gong=gong;
  42. }
  43. public void show()
  44. {
  45. super.show();
  46. System.out.println(","+bu+","+gong);
  47. }
  48. }

        题目 5:

        思路:调用父类的方法;

        答案代码: 

  1. import java.util.Calendar;
  2. class Manager extends People
  3. {
  4. int y=0;
  5. int getBonus(int x)
  6. {
  7. y =super.getAge();
  8. return (y-1)*x;
  9. }
  10. }
  11. class Employee extends People
  12. {
  13. int y;
  14. int getWorkday()
  15. {
  16. y =super.getAge();
  17. return 365-115-y+1;
  18. }
  19. }
  20. class People{
  21. public String name;
  22. public String birthday;
  23. public void setBirthday(String birthday){
  24. this.birthday=birthday;
  25. }
  26. public int getAge(){
  27. String y=birthday.substring(0,4);
  28. Calendar c=Calendar.getInstance();
  29. return c.get(Calendar.YEAR)-Integer.parseInt(y);
  30. }
  31. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/773059
推荐阅读
相关标签
  

闽ICP备14008679号