速学堂 JAVA300 第五章练习

一、选择题

1.使用权限修饰符(B)修饰的类的成员变量和成员方法,可以被当前包中所有类访问,也可以被它的子类(同一个包以及不同包中的子类)访问。(选择一项)
A.public
B.protected
C.默认
D.private
2.以下关于继承条件下构造方法执行过程的代码的执行结果是(A)。(选择一项)

class Person {   public Person() {System.out.println("execute Person()");}
}
class Student extends Person { public Student() {       System.out.println("execute Student() ");}
}
class PostGraduate extends Student {   public PostGraduate() {  System.out.println("execute PostGraduate()");}
}
public class TestInherit {public static void main(String[] args) {new PostGraduate();       }
}

A.execute Person()
execute Student()
execute PostGraduate()
B.execute PostGraduate()
C.execute PostGraduate()
execute Student()
execute Person()
D.没有结果输出

4.在Java中关于abstract关键字,以下说法正确的是(B)。
A.abstract类中可以没有抽象方法
B.abstract类的子类也可以是抽象类
C.abstract方法可以有方法体
D.abstract类可以创建对象

5.在Java接口中,下列选项中属于有效的方法声明是(A、C)。(选择二项)
A.public void aMethod( );
B.final void aMethod( );
C.void aMethod();
D.private void aMethod( );

二、简答题

  1. private、默认、protected、public四个权限修饰符的作用。
    private:修饰符表示私有,只能在同一类内被访问
    默认(default):可以被同一包内的类访问
    protected:可以被同一包内的类,以及不同包之间的之类访问
    public:可以被同一项目内的任何类访问

  2. 继承条件下子类构造方法的执行过程。
    检测子类中是否有显示调用父类方法,若无,则自动添加无参的super()方法
    若子类包含父类方法的调用,则进入父类的构造方法
    当父类的构造方法结束后,进入子类的构造方法开始构造

  3. 什么是向上转型和向下转型
    向上转型:父类引用指向子类对象的过程。
    向下转型:子类向上转型为父引用变量后,通过强制转型转换为子类型
    假设现有子类son,父类father:
    向上转型:father a = new son();
    向下转型:son b = (son) a;

  4. final和abstract关键字的作用。
    final:定义常量,所定义的类、对象、方法、属性不可被其他类修改
    abstract:定义抽象,在父类中被abstract定义的方法必须被子类实现,声明了一个子类“规范”

  5. = =和equals()的联系和区别。
    两者都用于逻辑全等的比较
    “= =”的作用有两个
    1.判断两个数值类型的数据,在数学逻辑上是否相等
    2.判断两个变量引用的类型,在内存中是否为同一个
    equals的用法
    1.根据Object类的原始定义,equals方法与“==”完全相等,都是比较两个对象,在内存中是否为同一个
    2.由于equals没有被final修饰,因此可以被子类继承,子类重写后,equals的功能无法确定
    3.在字符串实现类String中,重写了equals方法,用于比较两个字符串的内容是否相等

三、编码题

  1. 编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。
    (1) 编写一个圆类Circle,该类拥有:
    a) 一个成员变量,radius(私有,浮点型);//存放圆的半径
    b) 两个构造方法(无参、有参);
    c) 三个成员方法
    double getArea() //获取圆的面积
    double getPerimeter() //获取圆的周长
    void show() //将圆的关径、周长、面积输出到屏幕
    (2) 编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:
    a) 一个成员变量,double hight (私有,浮点型); //圆柱体的高;
    b) 构造方法
    c) 成员方法
    double getVolume() //获取圆柱体的体积
    void showVolume() //将圆柱体的体积输出到屏幕
public class Circle {private  double radius;//成员变量//两个构造方法public Circle() {System.out.println("构建父类构建方法");};public Circle(double radius) {this.radius = radius;}//三个成员方法double getArea(Circle c) {return Math.PI*c.radius*c.radius;}double getPerimeter(Circle c) {return 2*Math.PI*c.radius;}void show(Circle c) {System.out.println("圆的半径为:"+c.radius);System.out.println("圆的面积为:"+c.getArea(c));System.out.println("圆的周长为:"+c.getPerimeter(c));}//主函数public static void main(String args[]) {Circle c = new Circle(2.5);c.show(c);Circle h = new Cylinder(2.5,2.4);h.show(h);Cylinder realc = (Cylinder)h;realc.showVolume(realc);}}class Cylinder extends Circle{private double hight;//构造方法public Cylinder(double radius,double hight) {super(radius);this.hight = hight;}//成员方法double getVolume(Cylinder h) {return h.hight*h.getArea(h);}void showVolume(Cylinder h) {System.out.println("圆柱的体积为:"+h.getVolume(h));}
}
  1. 编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。
    实现思路及关键代码:

    1. 定义乐器类Instrument,包括方法makeSound();
    2. 定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin;
    3. 定义乐手类Musician,可以弹奏各种乐器play(Instrument i);
    4. 定义测试类,给乐手不同的乐器让他弹奏。
public  class Instrument {//定义父类makeSound方法public void  makeSound() {System.out.println("乐器弹奏测试");}//主函数,创建 乐手和乐器对象,将乐器对象提供给乐手,使其演奏public static void main(String args[]) {Musician m = new Musician();Instrument i = new Instrument();Instrument e = new Erhu();Instrument p = new Piano();Instrument v = new Violin();m.paly(i);m.paly(e);m.paly(p);m.paly(v);}
}//创建不同乐器类
class Erhu extends Instrument{public void makeSound() {System.out.println("在演奏二胡");}
}class Piano extends Instrument{public void makeSound() {System.out.println("在演奏钢琴");}
}class Violin extends Instrument{public void makeSound() {System.out.println("在演奏小提琴");}
}//创建乐手类,包含演奏方法
class Musician{void paly(Instrument i){i.makeSound();}
}
  1. 编写程序描述影视歌三栖艺人。需求说明:请使用面向对象的思想,设计自定义类,描述影视歌三梄艺人。
    实现思路:

    1. 分析影视歌三栖艺人的特性:可以演电影,可以演电视剧,可以唱歌
    2. 定义多个接口描述特性
      a) 演电影的接口-----方法:演电影
      b) 演电视剧的接口-----方法:演电视剧
      c) 唱歌的接口-----方法:唱歌
    3. 定义艺人类实现多个接口
public class Artist{public static void main(String args[]) {art a = new art();a.art("杨幂");a.playMovie();a.playDiansj();a.playSing();}
}//定义多个接口
interface movie{void playMovie();
}interface diansj{void playDiansj();
}interface sing{void playSing();
}//创建艺人类
class art implements movie,diansj,sing{void art(String name){System.out.println("大家好,我是"+name);}@Overridepublic void playMovie() {System.out.println("我能演电影"); }@Overridepublic void playSing() {System.out.println("我能演电视剧");}@Overridepublic void playDiansj() {System.out.println("我会唱歌");}}

速学堂 JAVA 第五章练习相关推荐

  1. 尚学堂Java第五章所有题目

    尚学堂Java第五章所有题目 一.选择题 二.简答题 三.编码题 编码题一 编码题二 编码题三 这次的作业有一部分理解的可能不是很透彻,可能不是最优的方法,希望师傅们能给刚入门的我一点建议! 一.选择 ...

  2. 速学堂(java)第十一章编程题答案(自写)

    速学堂(java)第十一章编程题答案(自写) 1.设计一个多线程的程序如下:设计一个火车售票模拟程序.假如火车站要有100张火车票要卖出,现在有5个售票点同时售票,用5个线程模拟这5个售票点的售票情况 ...

  3. 速学堂 Java300 第五章 作业

    第五章 作业 一. 1.B 2.A 3.D 4.B 5.AC 二. 1.四个权限修饰符的访问权限: private:本类 default:本类.本包 protected:本类.本包.子类 public ...

  4. 速学堂(java)第十章编程题答案(自写)

    速学堂(java)第十章编程题答案(自写) 1. 实现字节数组和任何基本类型和引用类型执行的相互转换 提示:使用ByteArrayInutStream和ByteArrayOutputStream. p ...

  5. 尚学堂Java第四章作业编码题+个人想法

    尚学堂Java第四章作业编码题+个人想法 编码题一: 编码题二: 编码题三: 终于到我想说的地方了 刚开始学习Java,刚开始学会做笔记,觉悟的可能比较晚,但没关系,我会努力的! 由于每次做作业都难理 ...

  6. java十五章_java:第十五章

    第十五章 字符串1.字符串(String)的定义 String str="内容"; String str=new String(); //内容为null String str=ne ...

  7. Java第五章——面向对象(二)

    第五章面向对象(中) 1.访问控制修饰符 2.继承 3.组合 4.重载 5.覆盖(覆写) 重点: 封装(java访问控制权限) 继承(定义.子类访问控制权限) 类的组合的实现(与继承的区别) 多态(重 ...

  8. java第五章上机流程图,第五章汇编语言程序设计

    第五章汇编语言程序设计Tag内容描述: 1.1 第5章 汇编语言程序设计 概述 顺序程序设计 分支程序设计 循环程序设计 子程序设计 2 5 1 概述 汇编程序中的语句 编写汇编程序的一般步骤 3 一 ...

  9. java第五章课后题_黑猴子的家:Java SE 练习题第五章

    尾部都有答案 第五章练习题(继承) (1)下列关于继承优点的叙述正确的是哪几项?(选三项) A.可以创建更为特殊的类型 B.消除重复代码 C.执行效率高 D.便于维护 (2)在子类中调用父类中被覆盖的 ...

最新文章

  1. IntelliJ IDEA 2016.3.1 学习git 码云插件 学习笔记
  2. C++回调函数用法(zz)
  3. MySql通用二进制版本在Linux(Ubuntu)下安装与开启服务
  4. 什么样的女人才算是好老婆?
  5. Matlab 读取文件夹里所有的文件
  6. MATLAB读取一张RGB图片转成YUV格式
  7. 2018android wear手表,谷歌正开发三款智能手表 Wear OS系统逐步脱离Android范畴
  8. Docker相关概念与安装(Docker-CE)
  9. 博客已从百度空间搬家到此
  10. latex插入表格心得
  11. OVS VxLAN Flow 分析 - 每天5分钟玩转 OpenStack(149)
  12. 职场交流:一位软件工程师的7年总结
  13. 在保护继承中基类的共有成员_C#初学者教程系列11:继承
  14. BZOJ 1087 [SCOI2005]互不侵犯King ——状压DP
  15. 13.Azure流量管理器(上)
  16. linux登录主机命令,linux w命令查询已登录主机的用户信息
  17. 关于静态编译出现的问题以及解决方法
  18. CentOS下搭建docker+.net core
  19. Android-Universal-Image-Loader学习笔记(二)--LruDiscCache
  20. 管理感悟:维护每日工作列表

热门文章

  1. arcgis利用栅格计算器修改DEM高程数据
  2. 深度学习:自编码进行模式分类
  3. 椭圆形方程的差分解法
  4. 关于32位系统中int、float、short、double等占多少个字节
  5. cmake使用方法详解 - Windows Linux MacOS cmake安装教程
  6. 6个好用到爆的音频、配乐素材网站,BGM都在这里了
  7. 第1次任务:购物车程序的面向对象设计
  8. Jave概述及变量总结
  9. 启用linux内核对usb摄像头的支持,linux利用USB摄像头
  10. word文档转html怎么设置utf-8,word转utf 如何将word改为utf-8编码