1. 程式人生 > >第3章課後作業

第3章課後作業

第1題   簡述封裝的定義,步驟和好處

答:封裝就是將類的狀態資訊隱藏在類的內部,不允許外部程式直接訪問,而通過該類提供的方法來實現對隱藏資訊的操作和訪問.具體步驟:1,修改類屬性的訪問許可權.2,建立setter(賦值)和getter(取值)的方法.3,在getter中加入對屬性的存取控制語句.封裝的好處就是讓使用者只能通過程式規定的方法來訪問資料,隱藏類的實現細節,方便加入存取控制語句,限制不合理的操作.

第2題   指出程式碼中存在的錯誤,並說明錯誤原因

類Teacher2中的方法不是構造方法,所以下面的main()方法中例項化物件不能傳參,修改方法要麼去掉viod,要麼去掉實參.    

第3題   指出程式碼中存在的錯誤,並說明錯誤原因

public int a(String s1,String s2) {} 無return返回

public void a(int i, String s) {}與private void a(int i,String mystring) {}方法名相同,形參的型別和個數都相同

第4題   編寫類Student1和測試類Student1Test

class Student1 {
private String name;
private int avg;
public void setAvg(String name,int avg) {
this.name = name;
this.avg = avg;
}
public void getMeg() {
if(avg>16) {
System.out.println("我的名字是:"+name+"年齡是:"+avg);
}else {
System.out.println("年齡不達標");
}
}

}

import java.util.Scanner;
public class Student1Test{
public static void main(String[] args) {
Student1 s1 = new Student1();
Scanner in = new Scanner(System.in);
System.out.print("請輸入姓名:");
String name = in.next();
System.out.print("請輸入年齡:");
int avg = in.nextInt();
s1.setAvg(name, avg);
s1.getMeg();
}

}

第5題 編寫類Student2和測試類Student2Test

class Student2 {
private String name;
private int avg;
private String sex;
private String subject;
public Student2(String name,int avg) {
this.name = name;
this.avg = avg;
this.sex = "男";
this.subject = "Java";
}
public Student2(String name,int avg,String sex,String subject) {
this.name = name;
this.avg = avg;
this.sex = sex;
this.subject = subject;
}
public void show() {
System.out.println("我的名字叫"+name+",今年"+avg+"歲,性別是"+sex+",學習的專業是:"+subject);
}

}

import java.util.Scanner;
public class Student2Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("請輸入姓名:");
String name = in.next();
System.out.print("請輸入年齡:");
int avg = in.nextInt();
Student2 s2 =new Student2(name, avg);
s2.show();
System.out.print("請輸入姓名:");
String name1 = in.next();
System.out.print("請輸入年齡:");
int avg1 = in.nextInt();
System.out.print("請輸入性別:");
String sex = in.next();
System.out.print("請輸入專業:");
String subject = in.next();
Student2 s3 =new Student2(name1, avg1, sex, subject);
s3.show();
}
}