1. 程式人生 > >JAVA複習之二

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)在註釋的地方是錯誤的,因為這兩個異常類是父類與子類的關係,父類異常不能寫在子類異常前面