1.System.in
2.Scanner
3.array
4.Constructor
5.java.lang ,java.io , java.util ,java.sql
System.in:
System class is included in java.lang ,
the ability of system.in included "stadard input and standard output...etc".
System.in can be used in inputstram.
但我們很少直接使用System.in,因為System.in中所提供的read() method,
是取得一個位元組的資料,並return這個位元組的整數值.
Scanner:
如果我們要取得使用者的輸入,
可用Scanner input = new Scanner(System.in);
但Scanner遇到space就會回傳,所以並無法回傳一整個包含空白的句子.
Array:
Because Java is a object language,
array need to be declared according to the form of object.
for example:
int a[];
a=new int[4];
Constructor:
Constructor 是做為當一個object被宣告時可自動執行的function,
His name is the same with his class.
其前面不可加public ,void...等用語.
java.lang ,java.io , java.util ,java.sql:
是最常被用到的4種package,
java.lang included "System","Thread",String"...etc
java.io 包含了一些input與output的類別.
java.util 有Scaner....etc
java.sql提供使用database的一些API..
Empty Array的回傳值
若為String Array ,會回傳null , 若為int array ,則會回傳 0 .
如何解決Java中讀取中文的問題:
在JAVA的Input串流中可以指定讀取資料的格式 , for example:
File f = new File("E:\\eclipse\\workspace\\box\\Data\\2003-3-7-100.inc");
InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8");
//java要讀取數據流的時候一定要指定數據流的編碼方式
BufferedReader reader=new BufferedReader(read)
Notepad++
Nppexec的安裝
安裝後須在執行介面下,加註以下兩行:
javac $(FILE_NAME)
java $(NAME_PART)
2011/1/11
1.使用Java進行網頁參數的傳遞
直接用Java在傳網頁參數時 , 若參數為中文字 , 必須要先將中文轉碼為UTF-8的格式.
Ex:
String str =URLEncoder.encode("苗栗","UTF-8");
String str_http = "http://placesearch.moi.gov.tw/translate/reviewed_words1.php?admip=&classname=&keyword=";
str_http = str_http.concat(str);
如此一來才可以抓到下中文參數後的網頁內容.
2011/1/12
Inheritance (繼承)
1.Child 可以繼承自parent處的所有member.(member指所有的variable以及method)
2.其中Child又稱subclass ,parent稱為superclass.
3.Child可以add new method或者new instance variable , Child也可以override來自superclass的method.
Package
Description : 可將compile後的結果放置在特定的data holder中 ,以方便管理.
Step:
1.將每個java file前面加註這樣的指令 : package test.hello_world; 表是建立一個test 資料夾, 裡面再建一個hello_world的資料夾 ,
而class檔就放在hello_world的data holder中.
2.compile時的指令與原本不同 ,為:javac -d . test.java
而如果要執行資料夾裡面的指令 ,則為:java test.hello_world.test
Eclipse
Ctrl + F11 : 快速執行程式
2011/1/16
用Scanner可以在讀取字串時自動以/n , /t , or space為間隔.
(使用next() , 但要配合hasNext()來使用)
example :
File f = new File(str);
InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8");
Scanner scan = new Scanner(read);
// 表示scanner將由read這個InputStreamReader裡面的資料進行Scan
讀取資料夾裡面的檔案
如FileReader fr = new FileReader(seg\\00001.seg);
要注意這裡的\\是兩個 , 而非一個.(因為\\表示印出一個\的character)
讀取資料夾裡面的檔案名稱
要讀取資料夾裡面的檔案名稱 , 首先要讀取目錄 ,此部份可以使用File f = new File(java)
來完成 .(其中java表示java這一個directory)
而在File class中有list這個method ,可以列出所有的directory中的檔案及目錄名稱.
(list method will return "String array")
for example:
File f = new File(java);
String[] str = new String[10];
str = f.list();
2011/01/17
使用class裡面的static method
只要將import 宣告為import static java.lang.Integer.*;
便可以直接使用Integer裡面中宣告為static 的method.
ex:
String str = "123";
int num = parseInt("123");
自定程式庫
在自定程式褲時 , 必須使用package的指令來建立資料夾,
若是自己健資料夾 , 再將class放到此資料夾中 , 會造成無法使用.
因為在java中 , 一開始是先從source file的所在處進行search ,
然後才是class path ,兩邊都找不到的話才會到指定的class中,
但是因為這個class是自己放進去的 , 所以並無package到此資料夾的路徑程式,
因此會被Java compiler認定為錯誤.
2011/01/25
Arrays.sort(int[]) , 將Array中的內容排序
使用java中所定義好的Arrays.sort ,可以直接幫我們將Array中的內容進行排序,
若a[0]=3 , a[1]= 10 , a[2]=4;
Arrays.sort(a);
即可排序成:a[0]=3 , a[1]=4 , a[2]=10;
2011/01/28
foreach
藉由foreach的語法 , 可以將array中每一個值依次指派給所宣告的變數.
for example:
for(int j:a) , 其中a為矩陣名稱 , 代表將a矩陣中的每一個值依次指派給j這個變數.
this指標
this指標其實就是指向自己這個object的指標.
假設有一個class 為ball ,而我們new出了兩個object ,分別為 b1 = new ball()
及b2=new ball();
因為method member在記憶體中只會有一個 , 所以會用this指標來註明這是屬於哪一個object的東西.
for example:
class ball
{
int data;
ball()
{
data =5;
return data;
}
}
在這裡的return data ,其實隱含了return this.data , 註明了這個data是屬於哪個object的東西.
2011/01/29
Java Applet
Java Applet是一種可以內嵌在Html webpage中的Java program , 當我們使用browser瀏覽到某一個網頁,
而這個網頁具有java applet的程式時 , 這個applet的程式便會下載到browser中的JVM來進行執行 , 並且將
執行的結果顯示再browser上面.
Java Plug-in
Java plug-in是一種technology ,他可以在browser與Java platform之間建立一個連結 , 來幫助Java applet的程式
可以正常的執行在browser上.
Java Applet的compiler 與執行
Applet的程式在Compiler部分就像一般的Java program一樣 , 但是在執行時須以另外的方法執行,
我們必須撰寫一個Html file將這個Applet內嵌在檔案中 , 接下來便可以使用browser來觀看執行之後的結果,
Html的內容如下:
<html>
<applet code="WelcomeApplet.class" width=300 height=30>
</applet>
</html>
另外也可以使用appletviewer的指令來執行.
2011/01/30
用Java來讀取圖檔 , 並顯示圖檔
在Java上用來讀取圖檔的方式可以分為三種 , 一種是由檔案讀取 , 另一種則是由輸入串流來讀取,
而最後一種方法則可使用URL的方式來讀取.
以第一種方法而言 , 首先要宣告一個image object,
即 Image image =null;
File file = new File("test.jpg"); //開啟test.jpg這個圖檔.
image = ImageIO.read(file); // 以imageIO類別中的method來讀進此image file.
最後我們可以使用swing中的label類別來display這張image.
code如下:
Image image = null; try { // Read from a file File file = new File("test.jpg"); image = ImageIO.read(file); // Read from an input stream InputStream is = new BufferedInputStream( new FileInputStream("test.jpg")); image = ImageIO.read(is); // Read from a URL URL url = new URL("http://hostname.com/test.jpg"); image = ImageIO.read(url); } catch (IOException e) { } // Use a label to display the image JFrame frame = new JFrame(); JLabel label = new JLabel(new ImageIcon(image)); frame.getContentPane().add(label, BorderLayout.CENTER); frame.pack(); frame.setVisible(true);
(ref :http://www.exampledepot.com , thanks the master of exampledepot)