尚学堂第五章作业参考答案(有错误处望指正)

1选择题~

(1)B (2)A (3)D (4)AB (5)AC

2.简答题

1.问: private、默认、protected、public四个权限修饰符的作用。
*答:private:表示私有,只能在自己类中进行访问
*default:表示默认,可以在同一个包中的类中使用
*protected:表示受保护的,可以被同一个包中的类以及其他包中的子类使用
*public:表示公开的,可以被整个项目下的所有类访问;
//################################################################
2. 问:继承条件下子类构造方法的执行过程。
答:首先调用当前子类中的super()方法来调用对应的父类构造方法,
一次追溯到Object类中的构造方法,然后再依次向下执行类中的初始化和构造方法
//################################################################
3.问: 什么是向上转型和向下转型
答:向上转型:父类引用指向子类对象
向下转型:指的是在向上转型中父类引用的变量只能调用它编译类型的方法,
不能调用子类中的属性及方法,此时转型叫向下转型.
//##################################################################
*4.问:4. final和abstract关键字的作用。
*答:final关键字的作用:用final修饰的变量不能被赋值,成为常量
*用final修饰的方法不能被重写;被final修饰的类不能被继承
*abstract:抽象类作用就是规范,模板,子类必须实现抽象类中的方法
*1抽象类中没有方法体,子类必须实现其方法体
*2拥有抽象方法的类必须是抽象类
*3抽象类不能实例化对象
*4抽象类中有属性、方法、构造方法,其中构造方法不能用new来实例,只能被子类调用
//###################################################################
*5:问. "= ="和equals()的联系和区别。
*答: Object 的 equals 方法默认就是比较两个对象的hashcode,
*是同一个对象的引用时返回 true 否则返回 false
“==”代表比较双方是否相同。如果是基本类型则表示值相等,
如果是引用类型则表示地址相等即是同一个对象

3编程题

1.问:编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。

import java.util.Scanner;
class Circle{
	//私有浮点型属性半径r
	private float radius;		//圆的半径
	public void setRadius(float radius) {//设置圆的半径
		this.radius = radius;
	}
	public float getRadius() {
		return radius;
	}
	//构造方法
	public Circle() {
		
	}
	public Circle(float radius) {
		this.radius = radius;
	}
	
	//普通方法
	public double getPerimeter() {		//计算圆的周长
		double perimeter = (2 * Math.PI * this.radius);
		return perimeter;
	}
	public double getArea(float radius) {			//计算面积
		double area =  (Math.PI * Math.pow(radius, 2));
		return area;
	}
	public void show() {		//输出到屏幕
		System.out.println("圆的半径:" + this.radius + "\t" + "圆的面积是:" + this.getArea(this.radius) + "\t" + "圆的周长:" + this.getPerimeter());
	}
}
class Cylinder extends Circle{
	//私有属性
	private double high;
	public void setHigh(double high) {
		this.high = high;
	}
	//构造方法
	public Cylinder () {
		
	}
	//普通方法
	public double getVolume(float radius) {		//计算圆柱体积
		double volume = this.high * this.getArea(radius);		
		return volume;
	}
	
	public void showVolume(double result) {
		System.out.println("圆柱的体积是:" + result );
	}
}
public class Character5Work {
    public static void main(String[] args) {
    	System.out.println("请输入圆的半径");
    	Scanner scanner = new Scanner(System.in);
    	float radius = scanner.nextFloat();
    	Circle yuan = new Circle(radius);
    	yuan.show();
    	
    	System.out.println("请输入圆柱的高:");
    	double high = scanner.nextDouble();
    	Cylinder zhu = new Cylinder();
    	zhu.setHigh(high);
    	double result = zhu.getVolume(yuan.getRadius());
    	zhu.showVolume(result);
    }
}

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

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 m) {
		m.makeSound();
	}
}
class TestInstrument{				//测试类
	public void test(String musicianName,Instrument i) {
		System.out.print(musicianName);
		Musician musician = new Musician();
		musician.play(i);
	}
}
public class Character5Work {
    public static void main(String[] args) {
        TestInstrument t1 = new TestInstrument();
    	Instrument i = new ErHu();
    	t1.test("高琪", i);
    }
}

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

interface  Movie{				//电影接口
	public abstract void showMovie();
}
interface TV{					//电视剧接口
	public abstract void showTV();
}
interface Song{					//唱歌接口
	public abstract void singSong();
}
class Actor implements Movie,TV,Song{	//上述接口的实现		演员类
	//构造方法
	public Actor(String name) {
		System.out.println("大家好我是" + name);
	}
	
	
	//普通方法
	public void showMovie() {
		System.out.println("我能演电影");
	}
	public void showTV() {
		System.out.println("我能眼电视剧");
	}
	public void singSong() {
		System.out.println("我会唱歌");
	}
}
public class Character5Work {
    public static void main(String[] args) {
`    	Actor a = new Actor("杨幂");
    	a.showMovie();
    	a.showTV();
    	a.singSong();
    }
}``

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值