继承的编程题和可选题

五、编程题

1、编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。(7分)
  提示:(1)编写一个圆类Circle,该类拥有:
  1)       一个成员变量,radius(私有,浮点型);//存放圆的半径;
  2)       两个构造方法
  Circle()              //将半径设为0
  Circle(double  r )    //创建Circle对象时将半径初始化为r
  3)       三个成员方法
  double getArea()      //获取圆的面积
  double getPerimeter()  //获取圆的周长
  void show()           //将圆的关径、周长、面积输出到屏幕
                  (2) 编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:
  1)       一个成员变量,double hight  (私有,浮点型);  //圆柱体的高;
  2)       构造方法
  //创建Cylinder对象时将半径初始化为r,高度初始化为h
  Cylinder(double r,double h)
  3)       成员方法
  double getVolume()            //获取圆柱体的体积
  void showVolume()             //将圆柱体的体积输出到屏幕

class Circle {double radius;// 无参构造器public Circle() {this.radius = 0;}// 有参构造器public Circle(double r) {this.radius = r;}//获取圆的面积public double getArea() {double s = Math.PI * this.radius * this.radius;return s;}//获取圆的周长public double getPerimeter() {double c = 2 * Math.PI * this.radius;return c;}//将圆的半径、周长、面积输出到屏幕public void show() {System.out.println("圆的半径是:" + this.radius);System.out.print("圆的周长是:");System.out.printf("%.2f", getPerimeter());System.out.print("\n圆的面积是:");System.out.printf("%.2f", getArea());}
}class Cylinder extends Circle {double hight;// 圆柱体的高public Cylinder(double r, double h) {super(r);this.hight = h;}// 获取圆柱体的体积public double getVolume() {double s = super.getArea();double v = s * this.hight;return v;}//将圆柱体的体积输出到屏幕public void showVolume() {System.out.print("\n圆柱的体积是:");System.out.printf("%.2f", getVolume());}
}public class Test1 {public static void main(String[] args) {Cylinder c = new Cylinder(3, 6);Circle ci = new Circle(5);ci.show();c.showVolume();}
}

2、请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息。
设定
1)出租车类:
属性包括:车型,车牌,所属出租公司;方法包括:启动,停止
2)家用轿车类:
属性包括:车型,车牌,车主姓名;方法包括:启动,停止
要求
1)分析出租车和家用轿车的公共成员,提取出父类—汽车类
2)利用继承机制,实现出租车类和家用轿车类
3)编写测试类,分别测试汽车类,出租车类和家用轿车类对象的相关方法
4)定义名为car的包存放汽车类,出租车类,家用轿车类和测试类

class Car { //父类-->汽车类//设置属性的私有访问权限private String type; //车型private String carNum; //车牌//通过公有的get,set方法实现对属性的访问public String getType() {return type;}public void setType(String type) {this.type = type;}public String getCarNum() {return carNum;}public void setCarNum(String carNum) {this.carNum = carNum;}//构造器public Car() {super();}public Car(String type, String carNum) {super();this.type = type;this.carNum = carNum;}//启动的方法public void start() {System.out.println("我是车,我启动");}//停止的方法public void stop() {System.out.println("我是车,我停止");}}class Taxi extends Car { //子类-->出租车类//设置属性的私有访问权限private String company; //所属出租公司//通过公有的get,set方法实现对属性的访问public String getCompany() {return company;}public void setCompany(String company) {this.company = company;}//构造器public Taxi() {super();}public Taxi(String type, String carNum, String company) {super(type, carNum);this.company = company;}//启动的方法-->方法重写public void start() {System.out.println("乘客您好\n我是" + company + "的,我的车牌是" + super.getCarNum() + ",您要去哪里?");}//停止的方法-->方法重写public void stop() {System.out.println("目的地已经到了,请您付费下车,欢迎再次乘坐");}}class OwnCar extends Car { // 子类-->家用轿车类// 设置属性的私有访问权限private String name; // 车主姓名// 通过公有的get,set方法实现对属性的访问public String getName() {return name;}public void setName(String name) {this.name = name;}// 构造器public OwnCar() {super();}public OwnCar(String type, String carNum, String name) {super(type, carNum);this.name = name;}// 启动的方法-->方法重写public void start() {System.out.println("我是" + name + ",我的汽车我做主");}// 停止的方法-->方法重写public void stop() {System.out.println("目的地到了,我们去玩吧");}}public class Test2 { //测试类public static void main(String[] args) {Car c = new Car(); //创建父类对象c.start(); //调用方法c.stop(); //调用方法System.out.println("==========================================");OwnCar oc = new OwnCar("", "", "武大郎"); //创建子类对象oc.start(); //调用方法oc.stop(); //调用方法System.out.println("==========================================");Taxi t = new Taxi("", "京B123", "景顺出租车公司");  //创建子类对象t.start(); //调用方法t.stop(); //调用方法}
}

3、公司要开发新游戏,请用面向对象的思想,设计游戏中的蛇怪和蜈蚣精
  设定
  1)       蛇怪类:
  属性包括:怪物名字,生命值,攻击力
  方法包括:攻击,移动(曲线移动),补血(当生命值<10时,可以补加20生命值)
  2)       蜈蚣精类:
  属性包括:怪物名字,生命值,攻击力
  方法包括:攻击,移动(飞行移动)
  要求
  1)       分析蛇怪和蜈蚣精的公共成员,提取出父类—怪物类
  2)       利用继承机制,实现蛇怪类和蜈蚣精类
  3)       攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击力
  4)       编写测试类,分别测试蛇怪和蜈蚣精的对象及相关方法
  5)       定义名为mon的包存怪物类,蛇怪类,蜈蚣精类和测试类

class Monster {String name;int healthpoint;// 生命值int Attack;// 攻击力public String getName() {return name;}public int getHealthpoint() {return healthpoint;}public int getAttack() {return Attack;}public void setName(String name) {this.name = name;}public void setHealthpoint(int healthpoint) {this.healthpoint = healthpoint;}public void setAttack(int attack) {this.Attack = attack;}//攻击public void attack() {System.out.println("怪物" + getName() + "展开攻击");System.out.println("当前的生命值是:" + getHealthpoint());System.out.println("攻击力是:" + getAttack());}//移动public void move() {}}class Snake extends Monster {//补血(当生命值<10时,可以补加20生命值)public void addHP() {if (getHealthpoint() < 10) {//当生命值<10时,可以补加20生命值healthpoint = getHealthpoint() + 20;System.out.println("施展大蛇补血术。。。。。当前的生命值是:" + healthpoint);}}//方法重写-重写父类move();public void move() {System.out.println("我是蛇怪,我走S行线路!");}}class Centipede extends Monster {// 方法重写-重写父类move();public void move() {System.out.println("我是蜈蚣精,我御风飞行!");}
}public class Test3 {public static void main(String[] args) {// 创建蛇对象Snake s = new Snake();s.setName("金蛇怪");s.setHealthpoint(1);s.addHP();s.setAttack(100);s.attack();s.move();// 创建蜈蚣对象System.out.println();Centipede ce = new Centipede();ce.setName("紫衣蜈蚣");ce.setHealthpoint(30);ce.setAttack(70);ce.attack();ce.move();}
}

六、可选题

1、请用面向对象的思想,设计自定义类描述演员和运动员的信息
  设定
  1)       演员类:
  属性包括:姓名,年龄,性别,毕业院校,代表作
  方法包括:自我介绍
  2)       运动员类:
  属性包括:姓名,年龄,性别,运动项目,历史最好成绩
  方法包括:自我介始
  要求
  3)       分析演员和运动员的公共成员,提取出父类—人类
  4)       利用继承机制,实现演员类和运动员类
  5)       编写测试类,分别测试人类,演员类和运动员类对象及相关方法
  6)       定义名为act的包存人类,演员类,运动员类和测试类

class People {private String name;private int age;private String sex;public String getName() {return name;}public int getAge() {return age;}public String getSex() {return sex;}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public void setSex(String sex) {this.sex = sex;}//公共方法-自我介绍public void introduce() {System.out.println("大家好!我是:" + getName());System.out.println("今年" + getAge() + "岁");System.out.println("我是一个" + getSex() + "生");}
}class Sportsman extends People {private String project;private String grade;public String getProject() {return project;}public String getGrade() {return grade;}public void setProject(String project) {this.project = project;}public void setGrade(String grade) {this.grade = grade;}public void title() {System.out.println("我就是一个普通的小老百姓");System.out.println("=====================");}//运动员介绍-运动项目,历史最好成绩public void info() {System.out.println("我最擅长的运动项目是:" + getProject() + "短跑");System.out.println("历史最好的成绩是:" + getGrade());}}class Actor extends People {private String graduate;private String representative;public String getGraduate() {return graduate;}public String getRepresentative() {return representative;}public void setGraduate(String graduate) {this.graduate = graduate;}public void setRepresentative(String representative) {this.representative = representative;}//演员介绍-毕业院校,代表作public void info() {System.out.println("毕业院校:" + getGraduate());System.out.println("代表作:" + getRepresentative());}public void title1() {System.out.println("=====================");}
}public class Test4 {public static void main(String[] args) {//运动员对象Sportsman s = new Sportsman();s.setName("刘小翔");s.setAge(23);s.setSex("男");s.setProject("200");s.setGrade("22秒30");s.title();s.introduce();s.info();//演员对象Actor a = new Actor();a.setName("章依");a.setAge(27);a.setSex("女");a.setGraduate("北京电影学院");a.setRepresentative("《寄往天国的家书》");a.title1();a.introduce();a.info();}

封装和继承作业(java)(二)相关推荐

  1. 封装和继承作业(java)(一)

    封装和继承作业 一.    选择题   1. 使用权限修饰符( B   )修饰的类的成员变量和成员方法,可以被当前包中所有类访问,也可以被它的子类(同一个包以及不同包中的子类)访问.(选择一项) A ...

  2. Java面向对象(二)面向对象的特征 --- 封装 、 继承、 多态

    面向对象的特征:封装.继承.多态.(抽象) 一.封装 体现形式: 函数 --- 提高代码的复用性. 属性的私有化 --- 将属性设为私有,通过提供对外的访问方法来间接操作对象属性,可以再方法内对属性做 ...

  3. java程序员从笨鸟到菜鸟之_Java程序员从笨鸟到菜鸟之(二)面向对象之封装,继承,多态(上)...

    Java是一种面向对象的语言,这是大家都知道的,他与那些像c语言等面向过程语言不同的是它本身所具有的面向对象的特性--封装,继承,多态,这也就是传说中的面向对象三大特性 一:从类和对象开始说起: Oo ...

  4. Java面向对象 第3节 类的封装和继承

    一.封装 封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作. 封装的2个大致原则: 1)把尽可能多的东西隐藏起来,对外提供便捷的接口 ...

  5. 初步理解Java的三大特性——封装、继承和多态

    声明:整理自网络,如有雷同,请联系博主处理 一.封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被 ...

  6. 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态

    @Python大星 一.Python 类的封装.继承和多态 封装 继承 Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Pytho ...

  7. Java面向对象——基础2 封装、继承、多态

    目录 Java基础知识图解 一.方法的重载 1.1重载是什么? 1.2重载的例子 1.3判断重载练习 1.4重载小结 1.5可变个数的形参 ​说明: 二.方法参数的值传递机制 2.1基本数据类型的参数 ...

  8. extend implements多个对象_「每天三分钟跟我学Java」之Java面向对象的封装、继承、多态...

    Java是面向对象的语言,深入理解面向对象的概念,对Java的开发至关重要.本节我们着重看下面向对象的三大特性,封装.继承.多态. 一.封装 封装是将类的某些信息隐藏在类内部,不允许外部程序直接访问, ...

  9. 十三、java类的封装、继承、多态

    面向对象的三个基本特性就是:封装.继承和多态. 前面讲解了java 程序都是由类文件组成的,java是面向对象的程序设计语言,在java中面向对象的思想就是由类的设计来体现的,也即类的继承.封装和多态 ...

最新文章

  1. Windows Server入门系列29 Hash加密与SAM数据库
  2. 学python可以做什么产品-学了 Python,能用来做什么?实际应用场景有哪些??...
  3. 计算机应用12班,计算机应用二班xx毕业论文.doc
  4. 《avascript 高级程序设计(第三版)》 ---第三章 基本概念
  5. Python中李群SO(3)与李代数so(3)之间指数映射与实现源码
  6. Activity生命周期(1)
  7. DOS命令批量删除文件及制作该命令的批处理命令详解
  8. EOS开发“ Hello world !”
  9. 苹果air3安兔兔html5是什么,iPad Air3什么时候上市?我们期待的苹果iPad Air3是什么样?(2)...
  10. 《写给大家看的面向对象编程书》读书介绍
  11. 图书馆管理系统设计说明书
  12. Microsoft Word For Mac 分节符
  13. sam卡和sim卡区别_SAM卡
  14. Linux 编程 —— libstdc++.so.6: version `CXXABI_1.3.11‘ not found
  15. Gartner:2017年存储技术成熟度曲线
  16. 大学英语(第四册)复习(原文及全文翻译)——Unit 3 - WHY DO WE BELIEVE THAT THE EARTH IS ROUND?(我们为什么相信地球是圆的?)
  17. 怎么用计算机弹出光年之外,明日之后光年之外简谱代码-明日之后光年之外怎么弹-明日之后光年之外钢琴曲谱分享_牛游戏网...
  18. Android 5.1.1 源码目录结构说明
  19. MFC 初始化D3D
  20. [c语言]0xC0000005访问冲突

热门文章

  1. 蓝港公布3D双端动作游戏《黎明之光》 预告片首曝
  2. Coredump 详解
  3. Linq to SQL八大子句
  4. 支付系统设计四:支付核心设计03-快捷发送短信(失败转代扣)
  5. 统信软件刘闻欢:国产操作系统呼之欲出 信息技术生态体系是关键
  6. docker部署项目
  7. # Java基础——IO流
  8. 基于linux-2.6.34内核编译详解,Linux 2.6、4.3内核编译过程的感受与总结
  9. 徐志摩最美的6句话,刻骨铭心!
  10. 电子元器件篇—二极管