JAVA複習之二
1、面向物件的特點:封裝、繼承、多型
2、case
jdk7之前case後面只能有整數或者是列舉型,但是在jdk7包括jdk7,之後在case後面就可以使用字串型別了;
break的作用是跳出switch,不執行其他的case了,如果不加就從符合條件的case開始,一直走下去,直到下一個break後跳出,如果一直沒有,到switch結束後退出 。
3、引數量可變方法
該語法只能使用一次,並且它必須是最後一項
4、this的使用
上圖中的no=no編譯的時候是不會出錯的,但是實際上根據就近原則,指的都是形參no;
5、各種關鍵字的訪問許可權
6、繼承
通過繼承子類自動擁有父類的所有普通成員(成員變數和方法)
7、陣列的拷貝
(1)System中有提供arraycopy方法,從from陣列到to陣列
fromIndex代表的是從from陣列的哪裡開始拷貝
toIndex代表to陣列從哪一個地方開始接受
cout代表拷貝元素的個數。
從A的第0個元素開始拷貝,B從第0個元素開始接受,接受的長度是A的長度。(前提是B夠長)
8、String和StringBuffer
String實現了equals、toString、hashCode方法的重寫
StringBuffer重寫了toString,但是沒有重寫equals
9、檔案讀取和輸出
(1)BufferedReader(字元流):增加了readLine方法,返回值是String型別,比較好用,一次讀取一行,因此,如果想要讀取String型別的資料,就用BufferedReader
括號中需要是Reader的子類
直接子類有:BufferedReader, InputStreamReader
間接子類有:FileReader(InputStreamReader)
br=new BufferedReader(new FileReader("test.txt"));//讀test.txt中的內容 String s=null; while((s=br.readLine())!=null) { System.out.println(s); }
(2)BufferedWriter(字元流):增加了newLine方法,比較好用,每次寫完一行之後,自動換行,因此,如果想要讀完一行之後回車,就用BufferedWriter
括號中只能是Writer的子類
直接子類有:BufferedWriter, OutputStreamWriter
間接子類有: FileWriter, PrintWriter
import java.io.*;
/*功能:往test.txt中寫入100行字元,然後從test.txt讀出寫入的資料,並列印到控制檯*/
public class TestBufferReader
{
public static void main(String[] args)
{
BufferedReader br=null;
try
{
BufferedWriter bw=new BufferedWriter(new FileWriter("test.txt"));//向test.txt中寫內容
br=new BufferedReader(new FileReader("test.txt"));//讀test.txt中的內容
String s=null;
for(int i=0;i<=100;i++)
{
s=String.valueOf(i);//把int型別的東西換成字串型別的東西
bw.write(s);//寫字串
bw.newLine();//新的一行,和回車一樣
}
bw.flush();//將緩衝中的內容清空並且寫入到檔案
while((s=br.readLine())!=null)
/*
* readLine():常用方法,一次可以讀一行
* 一共寫了100行字串
* 每次讀一行回來
* 讀到結尾就是null了,讀到結尾之後就打印出來
**/
{
System.out.println(s);
}
}
catch(FileNotFoundException e)
{
System.out.println("檔案讀取錯誤");
System.exit(-1);
}
catch(IOException e)
{
e.printStackTrace();
}
/*catch(FileNotFoundException e)
{
System.out.println("檔案讀取錯誤");
System.exit(-1);
}*/
finally
{
try
{
br.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
}
如果catch(FileNotFoundException e)在註釋的地方是錯誤的,因為這兩個異常類是父類與子類的關係,父類異常不能寫在子類異常前面