1.ArrayList & LinkedList
1.ArrayList:適合固定大小,例如戲院的座位數量。
2.LinkedList:可以用在不固定大小,例如會員的數量。
3.Generic:泛型(型別限定)。
List 的特性是有次序性,有先後順序的。
2.物件導向 Object-Oriented
特點:
1.繼承 (Inheritance):
私有 private 自己可存取
^ default 同套件可存取
| protected 只要繼承即可存取
公開 public 都可以存取
2.封裝 (Encapsulation):
就是要將變數改為 private,然後 public 2個方法 setName & getName 來讓其他類別來存取變數。因此程式會變得比較大,但比較安全、完整。
例如:程式碼
Hospital.java
public class Hospital {
public static void main ( String[] args ){
Human p01 = new Human();
// p01.name ="甲";
p01.setName("甲");
p01.setLegs(1);
Human p02 = new Human();
// p02.name ="乙";
p02.setName("乙");
// p02.legs =-1; //避免用到不該有的資料,腿數不可為 -1
p02.setLegs(-1); //所以改用setLegs
p01.showDetail();
p02.showDetail();
}
}
Human.java
public class Human {
private String name; // 變數改成 private
private int legs =2; // 變數改成 private
public void setName( String name ){ // public setName 方法
if ( name !=null ){ //加上 if 判斷式,確保資料是正確的
this.name = name;
} else { //否則就丟出錯誤訊息
throw new IllegalArgumentException();
}
}
public String getName(){
return name;
}
public void setLegs( int legs ){ // public setLegs 方法
if ( legs >=0 ){
this.legs = legs;
} else {
throw new IllegalArgumentException("有問題, 腿數: " +legs);
}
}
public int getLegs(){
return legs;
}
public void showDetail(){
System.out.println(
"傷患: " +name +"\n"
+"腿數: " +legs
);
}
}
3.介面 (Interface):
介面要用 implement 而不是像繼承要用 extend,介面有類似繼承的功能。但是子類別只能繼承一個父類別;而子類別可以實作多個父類別。
4.多型 (Polymorphism):
一個類別時做多個介面時,就稱為多型。不可以直接 show,必須轉型為單一腳色後才可以。例如:
Teacher.java
public interface Teacher {
public String title="講師";
}
Father.java
public interface Father {
public String title="父親";
}
Me.java
public class Me implements Father, Teacher {
}
Test.java
public class Test {
public static void main ( String[] args ){
Me m = new Me();
// System.out.println(m.title); 不可以直接 show,因為目前身上有二個腳色,不知要用何者
System.out.println("苦命的人, 同時扮演: ");
System.out.println( ((Teacher)m).title ); //必須轉型為單一腳色才可以show
System.out.println( ((Father)m).title ); //必須轉型為單一腳色才可以show
}
}
3.網站爬文程式
範例:
URLExample.java
import java.net.*;
import java.io.*;
public class URLExample {
public static void main( String[] args ) throws Exception {
String oneLine;
URL url_address = new URL("http://www.XXX.com");
BufferedReader br = new BufferedReader( // 讀到 BufferReader 裡面
new InputStreamReader( url_address.openStream() ) );
while( ( oneLine = br.readLine() ) != null ){ // 一次讀一行,讀到沒資料為止
System.out.println( oneLine );
}
br.close();
} // main
} // class
run.bat // 利用批次檔將上面取得的資料,放到XXX.htm 檔案裡
del *.class
javac URLExample.java
java -cp . URLExample > XXX.htm
4.UML工具
Umbrello:該工具可以直接畫UML圖形,然後產生大約 70%的程式碼。
No comments:
Post a Comment