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();
}
}``