1. 程式人生 > >JavaSE程式設計題目~3

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