速学堂Java300集第五章作业

一、选择题
1.B
2.A
3.B
4.B
5.AC
二、简答题
1.private、默认、protected、public四个权限修饰符的作用。
private:被private修饰的方法或者属性只能在本类中使用
default:default修饰的方法属性可以在同一个包下使用,即使是不同类
protected:被protected修饰的方法和属性既可以在同一个包下使用,也可以在不同包下的子类里面使用
public:public修饰的方法所有包和类都能用,为公开的属性方法
2. 继承条件下子类构造方法的执行过程。
构造方法的第一句总是:super(…)来调用父类的构造方法;所以执行子类的构造方法时总是先往前追溯直到Object类,然后在依次向下执行类的初始化块和构造方法,直到当前子类为止。
3. 什么是向上转型和向下转型。
父类引用指向子类对象,称为向上转型,属于自动类型转换
向上转型后的父类引用变量只能调用编译时的方法,不能调用运行时的方法,这时我们需要将父类引用进行强制转换为子类引用类型,称为向下转型。
4. final和abstract关键字的作用。
final:
修饰变量,被final修饰过的变量只要被赋值一次后,就不可以二次赋值
修饰方法,被修饰的方法不可被重写,但是可以被重载
修饰类,不能被继承
abstract:
abstract修饰的方法称为抽象方法,没有方法体,只有申明
abstract修饰的类称为抽象类,抽象类中必须要有抽象方法,且一定要被子类实现
5. ==和equals()的联系和区别。
==是逻辑运算符,如果是普通类型,判断的是等式左右两边的值是否相等,相等返回true,不等返回false,如果等式两边是引用类型,则判断的是否为同一个对象,
Object 的 equals 方法默认就是比较两个对象的hashcode,是同一个对象的引用时返回 true 否则返回 false。但是,我们可以根据我们自己的要求重写equals方法。
三、编码题
1.编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。

public class Exam01 {
	public static void main(String[] args) {
		Circle yy = new Circle();
		yy.show();	
		Cylinder hh = new Cylinder(20);
		hh.showVolume();
	}
}

class Circle{    //定义圆类并初始化半径为5
	private double r = 5.0 ;
	
	public double getArea() {  //求面积
		double s ;
		return  s = Math.PI*r*r;
	}
	public double getPerimeter() {  //求周长
		double c;
		return  c = Math.PI*r*2;
	}
	public void show() {   //显示半径、面积和周长
		System.out.println("该圆的半径R="+ this.r );
		System.out.println("该圆的面积S="+ this.getArea() );
		System.out.println("该圆的周长C="+ this.getPerimeter() );
	}
	//无参构造器
	public  Circle() {
		
	}
}

class Cylinder extends Circle{  //定义圆柱类继承圆类
	private double h;
	//含参数h的构造器
	public Cylinder(double h) {
		super();
		this.h = h;
	}
	
	public double getVolume() {           //求体积
		double v ;
		return  v = this.getArea()*h;
	}
	void showVolume() {             //输出
		System.out.println("该圆柱的高H="+ this.h );	
		System.out.println("该圆柱的体积V="+ this.getVolume() );
	}
}

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

public class Exam02 {
	public static void main(String[] args) {
		Musician m = new Musician();
		Instrument i = new Instrument();
		Erhu e = new Erhu();
		Piano p = new Piano();
		Violin v = new Violin();
		m.play(i);
		m.play(e);
		m.play(p);
		m.play(v);		
	}
}
//定义乐器类
class Instrument{
	public void makeSound() {
		System.out.println("发出声音!");
	}
}
//定义二胡类
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{
	public void play(Instrument i) {
		i.makeSound();
	}
}

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

public class Exam03 {
	public static void main(String[] args) {
		
		Yiren y = new Yiren("杨幂");//新建艺人对象
		y.intreduce();
		y.playMusim();
		y.playTV();
		y.Sing();
	}	
}
//唱歌接口
interface music{
	void Sing();
}
//电影接口
interface musium{
	void playMusim();
}
//电视剧接口
interface TV{
	void playTV();
}
//定义艺人类实现上面的三个接口
class Yiren implements music,musium,TV{
	String name;
	public void intreduce(){
		System.out.println("大家好!我的名字是:"+name);
	}
	@Override
	public void playTV() {
		System.out.println("歌唱的好听!");
	}

	@Override
	public void playMusim() {
		System.out.println("电影演的精彩!");
	}

	@Override
	public void Sing() {
		System.out.println("电视剧演的激情!");
	}

	public Yiren(String name) {
		super();
		this.name = name;
	}
	
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值