JavaSE程式設計題目~3
阿新 • • 發佈:2018-11-28
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);
}
}