JavaSE编程题目~3

1.定义一个Father和Child类,并进行测试。

要求如下:
(1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。
(2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。
(3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather ()方法。

class Father{
    private String name = "zhangjun";
    class Child{
        public void introFather(){
            System.out.println(name);
        }
    }
}
class Test{
    public static void main(String[] args) {
        Father.Child child = new Father().new Child();
        child.introFather();
    }
}
2.简述下列程序运行结果:
class A{
    int y=6;
    class Inner{
        static int y=3;
        void show(){
            System.out.println(y);
        }
    }
}
class Test{
    public static void main(String [] args){
        A.Inner inner=new A().new Inner();
        inner.show();
    }
}
// 运行结果:编译失败,当内部类中有静态成员时,内部类也必须是静态的
3.写出下面程序运行结果:
public class Test {
    class A {
        public A() {
            System.out.println("A");
        }
    }

    class B extends A {
        public B() {
            System.out.println("B");
        }

        public static void main(String[] args) {
            B b = new B();
        }
    }
}
// 编译结果:先打印A,再打印B
4.编程打印出所有的 "水仙花数 "。

所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

public class Test{
    public static void main(String[] args) {
        for (int i=100; i<=999; i++){
            int j = 0;
            int x = i%10;  
            int y = (i/10)%10;   
            int z = i/100;  
            if(i == x*x*x + y*y*y + z*z*z ){
                System.out.println(i);
            }
        }
    }
}
//输出结果:三位的水仙花数共四个:153/370/371/407
5.编程题:

定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量。
(1)要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法。Role类中要体现出this的几种用法。
(2)从Role类派生出一个"Employee"类,该类具有Role类的所有成员(构造方法除外),并扩展salary成员变量,同时增加一个静态成员变量“员工编号(ID)”。同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,并提供一个final sing()方法。
(3)“Manager"类继承"Employee"类,有一个final成员变量"vehicle”,在main()方法中制造Manager和Employee对象,并测试这些对象的方法。


abstract class Role{
    private String name;
    private int age;
    private String sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    public abstract void play();
    public Role(){}
    public Role(String name,int age,String sex){
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
}
class Employee extends Role{
    private double salary;

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
    private String ID;

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }
    public Employee(){}
    public Employee(String name,int age,String sex,double salary,String ID){
        super(name, age, sex);
        this.salary = salary;
        this.ID = ID;
    }
    public void play(){
        System.out.println("员工编号:"+this.getID());
    }
    final void sing(){
        System.out.println("姓名:"+this.getName()+
                ",性别:"+this.getSex()+
                ",年龄:"+this.getAge()+
                ",薪资:"+this.getSalary());
    }
}
class Manager extends Employee{
    final String vehicle;

    public Manager (String name, int age, String sex, double salary, String ID, String vehicle){
        super(name, age, sex, salary, ID);
        this.vehicle = "Porsche";
    }
}
class Test{
    public static void main(String[] args) {
        Employee employee1 = new Employee("小燕子",18,"女",20000,"测开2020001");
        employee1.play();
        employee1.sing();
        Employee employee2 = new Employee("夏紫薇",18,"女",20000,"测开2020002");
        employee2.play();
        employee2.sing();
        System.out.println("开"+ employee2.vehicle);
    }
}

猜你喜欢

转载自blog.csdn.net/Hannah_Hsq/article/details/84488926