一、选择题

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

Apublic

B.protected

C.默认

D.private

private私有属性  只有自己能够使用

defult 默认属性 同包类,同一包的方法,类可以使用

protected 受保护的 同一个包的还有不同包的子类访问

public 公开属性 所有的包和类都可以访问

2.以下关于继承条件下构造方法执行过程的代码的执行结果是( A)。(选择一项)

A.execute Person()

execute Student()

execute PostGraduate()

B.execute PostGraduate()

C.execute PostGraduate()

execute Student()

execute Person()

D.没有结果输出

子类的构造方法默认有一个super()继承父类,

若是构造方法的第一行代码没有显式的调用super(...)或者this(...);

那么Java默认都会调用super(),含义是调用父类的无参数构造方法。

这里的super()可以省略

3.编译运行如下Java代码,输出结果是( D)。(选择一项)

A.Base method

B.Child methodB

C.hild methodB

D.编译错误

向上转型对象无法使用对象的新增方法,只能使用继承或重写的方法

看清题目是methodB()  如果是method()则是继承中的父类引用指向子类对象

4.在Java中关于abstract关键字,以下说法正确的是(A B)。

A.abstract类中可以没有抽象方法

B.abstract类的子类也可以是抽象类

C.abstract方法可以有方法体

D.abstract类可以创建对象

1. 有抽象方法的类只能定义成抽象类

2. 抽象类不能实例化,即不能用new来实例化抽象类。

3. 抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。

4. 抽象类只能用来被继承。

5. 抽象方法必须被子类实现。

5.在Java接口中,下列选项中属于有效的方法声明是( A,C)。(选择二项)

A.public void aMethod( );

B.final void aMethod( );

C.void aMethod();

D.private void aMethod( );

常量:接口中的属性只能是常量,总是:public static final 修饰。不写也是。

方法:接口中的方法只能是:public abstract。 省略的话,也是public abstract。

二、简答题

1. private、默认、protected、public四个权限修饰符的作用。

private私有属性  只有自己能够使用

defult 默认属性 同包类,同一包的方法,类可以使用

protected 受保护的 同一个包的还有不同包的子类访问

public 公开属性 所有的包和类都可以访问

2. 继承条件下子类构造方法的执行过程。

父类非抽象类:调用父类的构造方法,然后调用子类自己的构造方法(如果有)

父类为抽象类:(无参)调用父类的无参构造方法,然后调用自己的构造方法(如果有)

(有参)子类显示申明调用父类的有参构造函数,然后在调用子类的构造方法(如果有)

3. 什么是向上转型和向下转型。

向上转型: 父亲 f=new 孩子();

面向对象中的转型只会发生在有继承关系的子类和父类中(接口的实现也包括在这里)。

加入有父类:人,子类:男人和女人。

向上转型: Person p = new Man() ; //向上转型不需要强制类型转化

向下转型: Man man = (Man)new Person() ; //必须强制类型转化

4. final和abstract关键字的作用。

final是为了封装而生的,final父类方法一旦申明,子类只能继承无法修改,用于具有普适性的方法和变量.final类无法被继承.

abtract是为了抽象而生的,abstract类的子类只要不是abstract类,必须重写父类的abstract类.abstract方法不允许实现(没有方法体)

5. ==和equals()的联系和区别。

“==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。

Object类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑。比如,我们在公安系统中认为id相同的人就是同一个人、学籍系统中认为学号相同的人就是同一个人。

三、编码题

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() //将圆柱体的体积输出到屏幕

Circle类

packageGaoQiJava300.five.TextCircle;public classCircle {//半径

private doubleradius;//无参构造方法

publicCircle() {

}//有参构造方法

public Circle(doubleradius) {this.radius =radius;

}//三个成员方法//获取圆的面积

doublegetArea(){return Math.pow(radius,2)*Math.PI;

}//获取圆的周长

doublegetPerimeter(){return 2*Math.PI*radius;

}//将圆的半径、周长、面积输出到屏幕

public voidshow(){

System.out.println("半径为"+String.format("%.2f", radius)+"圆周长是:"+String.format("%.2f",getPerimeter())+"面积是"+String.format("%.2f",getArea()));

}

}

Cylinder类

packageGaoQiJava300.five.TextCircle;public class Cylinder extendsCircle {//圆柱体的高

private doublehight;//构造方法

public Cylinder(double radius, doublehight) {super(radius);this.hight =hight;

}//成员方法//获取圆柱体的体积

public doublegetVolume(){return getArea()*hight;

}//将圆柱体的体积输出到屏幕

public voidshowVolume(){

System.out.println("圆柱体体积是"+String.format("%.2f",getVolume()));

}

}

Test类

packageGaoQiJava300.five.TextCircle;public classTest {public static voidmain(String[] args){

Circle circle=new Circle(5);

circle.show();

Cylinder cylinder=new Cylinder(5,10);

cylinder.showVolume();

}

}

运行结果

2. 编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。

实现思路及关键代码:

1) 定义乐器类Instrument,包括方法makeSound();

2) 定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin;

3) 定义乐手类Musician,可以弹奏各种乐器play(Instrument i);

4) 定义测试类,给乐手不同的乐器让他弹奏。

Instument类

packageGaoQiJava300.five.TextMusic;public abstract classInstrument {public abstract voidmakeSound();

}

二胡类

packageGaoQiJava300.five.TextMusic;public class Erhu extendsInstrument{

@Overridepublic voidmakeSound() {

System.out.println("二泉音乐!!!");

}

}

钢琴类

packageGaoQiJava300.five.TextMusic;public class Piano extendsInstrument {

@Overridepublic voidmakeSound() {

System.out.println("致爱丽丝!!!");

}

}

小提琴类

packageGaoQiJava300.five.TextMusic;public class Violin extendsInstrument {

@Overridepublic voidmakeSound() {

System.out.println("超级马里奥");

}

}

乐手类

packageGaoQiJava300.five.TextMusic;public classMusician {public voidplay(Instrument instrument){

instrument.makeSound();

}

}

测试类

packageGaoQiJava300.five.TextMusic;public classTest {public static voidmain(String[] args){

Musician musician=newMusician();

musician.play(newErhu());

musician.play(newPiano());

musician.play(newViolin());

}

}

测试结果

3. 编写程序描述影视歌三栖艺人。需求说明:请使用面向对象的思想,设计自定义类,描述影视歌三梄艺人。

实现思路:

1) 分析影视歌三栖艺人的特性:可以演电影,可以演电视剧,可以唱歌

2) 定义多个接口描述特性

a) 演电影的接口-----方法:演电影

b) 演电视剧的接口-----方法:演电视剧

c) 唱歌的接口-----方法:唱歌

3) 定义艺人类实现多个接口

程序运行结果如图5-36所示。

Movie接口

packageGaoQiJava300.five.Star;public interfaceMoive {public abstract voidplayMoive();

}

Tvplay接口

packageGaoQiJava300.five.Star;public interfaceTvplay {public abstract voidplayTvplay();

}

Voice接口

packageGaoQiJava300.five.Star;public interfaceVoice {public abstract voidplayVoice();

}

Star类

packageGaoQiJava300.five.Star;public class Star implementsMoive,Tvplay,Voice {privateString name;publicStar(String name) {this.name =name;

}public voidintroduction(){

System.out.println("大家好,我是"+name);

}

@Overridepublic voidplayMoive() {

System.out.println("我能演电影");

}

@Overridepublic voidplayTvplay() {

System.out.println("我能演电视剧");

}

@Overridepublic voidplayVoice() {

System.out.println("我会唱歌");

}

}

Text类

packageGaoQiJava300.five.Star;public classText {public static voidmain(String[] args){

Star star=new Star("杨幂");

star.introduction();

star.playMoive();

star.playTvplay();

star.playVoice();

}

}

图5-37 编码题3运行效果图

高淇java300适合_高淇java300集JAVA面向对象的进阶作业相关推荐

  1. java 高内聚低耦合_高内聚低耦合法则实例解析

    定义:一个对象应该对其他对象保持最少的了解. 问题由来:类与类之间的关系越来越密切,耦合度越来越大,当一个类发生改变时,对另外一个类的影响也越大. 解决方案:尽量降低类与类之间的耦合. 自从我们接触到 ...

  2. 步步高vivo高通解锁工具_高通人工智能开放日,窥见5G+AI的未来

    2019年是5G商用的元年.迄今为止全球已有超过20家运营商部署了5G,超过20家硬件厂商发布了5G产品.与4G相比,5G的强劲发展势头已经彰显.5G具有高容量.低延时和高可靠性的特性,将支持包括智能 ...

  3. java设计高并发内存池_高并发服务器-连接池的设计

    高并发服务器-连接池的设计 高并发服务器需要有一些池的设计,如内存池,连接池,数据库连接池. 池(pool)的设计主要考虑到一些资源的频繁申请和释放,尤其是在高并发的服务器中,几万甚至几十万并发每秒, ...

  4. 高嘌呤食物搜索引擎_“高嘌呤”的食物已发现,尿酸高的人,要尽量挑着吃!...

    导语:在我们的生活中又出现了一种现象,越来越频发,也是越来越倾向于年轻化,那么就是高尿酸,现在高尿酸已经被列为了我们国家的第四高,身体内的嘌呤含量是一部分,那么另一部分也是来源于我们平时摄入的食物,所 ...

  5. libevent c++高并发网络编程_高并发编程学习(2)——线程通信详解

    前序文章 高并发编程学习(1)--并发基础 - https://www.wmyskxz.com/2019/11/26/gao-bing-fa-bian-cheng-xue-xi-1-bing-fa-j ...

  6. netty 高匿ip检测_高匿代理ip不用担心被网站检测

    高匿代理ip不用担心被网站检测 市场上关于代理ip的服务有很多种,可谓是鱼目混珠,一些服务虽然可以保证用户切换ip地址,但经常会被举报,暴露真实的ip地址,风险系数极高,让网民们苦不堪言. 近期,以高 ...

  7. 高绩效教练收获_高绩效团队教练学习心得

    近一年里对我启发最大的一本书是#高绩效团队教练#,由亨利商学院领导力教授,巴斯咨询集团创始人彼得·霍金斯(Peter Hawkins)所著.他是一位领先的领导力发展顾问.研究者和作家,是全球团队教练第 ...

  8. MySQL主流高可用解决方案有_高可用MySQL解决方案概述

    数据库作为最基础的数据存储服务之一,在存储系统中有着非常重要的地位,因此要求其具备高可用性无可厚非.能实现不同SLA(服务水平协定)的解决方案有很多种,这些方案可以保证数据库服务器在硬件或软件出现故障 ...

  9. 高绩效教练收获_高绩效呼叫中心怎样诞生的?

    高绩效呼叫中心 所具有的共同点是什么?它们都拥有专注于企业使命和愿景,知道如何使员工尽情投入.创造最佳绩效的强有力的领导者. 呼叫中心管理者的技能要求近些年有哪些改变?要想在他们的岗位上取得成功,他们 ...

  10. java 高内聚低耦合_高内聚低耦合是矛盾的吗?

    随着PMTalk版本的不断迭代,到现在我们已经迭代到5.0了,上线了3年班,在这漫长的时间里,一个产品会在研发中.产品设计有什么问题呢? 这里的问题主要是包含三类 1.技术人员不断变换,代码规范层次不 ...

最新文章

  1. [Java in NetBeans] Lesson 01. Java Programming Basics
  2. window.print()前端实现打印功能
  3. yum安装mysql
  4. Atom CSScomb 增强版
  5. graphpad如何加标注_咱也是有挖掘机加长臂的人了
  6. eclipse提示方法已过时_提高效率,eclipse上你可能不知道的技巧
  7. throwable四参构造_深入分析Java反射(四)-动态代理
  8. Spring源码之bean的加载(五)准备创建bean
  9. FTP-学习笔记(1)
  10. 图片命名html,网页切图div+css命名规则
  11. android百度地图注册,百度地图API key申请申请详细步骤
  12. 简单实用算法——人民币金额大写转换
  13. GitLab CI介绍——入门篇
  14. 君不密则失臣,臣不密则失身,机事不密则害成
  15. java中字段可以取名is开头吗
  16. ppt关闭受保护视图
  17. 前端 JS实现彩票开奖走势图 连线
  18. 易中天品汉代风云人物07:韩信功过之谜
  19. Lind.DDD.Caching分布式数据集缓存介绍
  20. 御用导航提示页面_终实现微信位置发送到汽车导航 越用越好用

热门文章

  1. 遥感图像——几何畸变和几何校正
  2. SEO流量工具-免费SEO流量排名优化工具
  3. 微信卡券的创建、领取、核销
  4. 苹果ipad9和华为matepad11选哪个好
  5. win10 游戏等应用打开时闪退解决方案
  6. 计算机游戏优化,Win10电脑玩游戏优化方法!必须关闭这几个设置,效果提升巨大...
  7. IPv4与IPv6地址转换
  8. web前端知识体系之基础知识 - CSS语言和功能
  9. HMC5883L 转换方向角与简易校准方法
  10. 中国微控制器市场趋势报告、技术动态创新及市场预测