Java基礎(四)
一、方法
1、方法的定義
方法也叫函數,就是一個能獨立完成某個功能的一段代碼。方法可以看作一個整體。
語法:
修飾符 返回類型 方法名字(數據類型 變量名,數據類型 變量名,……[形式參數(0個到n個)]){ 在方法的代碼塊區域返回結果值的語法: return 返回和方法返回類型相同的值; }
註意:
1、方法的返回類型和方法名稱必須定義。
2、在一個類中不能同時存在相同名稱和參數類型個數一樣的方法。(參數順序可以不一樣)
3、方法的名字的第一個單詞應以小寫字母作為開頭,後面的單詞則用大寫字母開頭寫,不使用連接符。例如 addTicket();
優點:使程序變得更簡短清晰。有利於維護
2、修飾符
修飾符用來定義類、方法或者變量,通常放在語句的最前端。
1、訪問修飾符 (4種)
private (私有化,範圍最小): 在同一類內可見。使用對象:變量、方法。 註意:不能修飾類(外部類)。
default (即缺省,什麽也不寫,默認的): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
protected (繼承相關): 對同一包內的類和所有子類可見。使用對象:變量、方法。 註意:不能修飾類(外部類)。
public (公共的,範圍最大): 對所有類可見。使用對象:類、接口、變量、方法。
2、非訪問修飾符
static
- static 變量
static 靜態變量,無論一個類實例化多少對象,它的靜態變量只有一份拷貝。常和 final 結合一起來聲明常量。
- static 方法
static 聲明獨立於對象的靜態方法。靜態方法不能使用類的非靜態變量。
final 修飾符,用來修飾類、方法和變量,final 修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變量為常量,是不可修改的。
- final 變量
註意:變量能被顯式地初始化並且只能初始化一次。被聲明為 final 的對象的引用不能指向不同的對象。但是 final 對象裏的數據可以被改變。也就是說 final 對象的引用不能改變,但是裏面的值可以改變。
- final 方法
類中的 final 方法可以被子類繼承,但是不能被子類修改。聲明 final 方法的主要目的是防止該方法的內容被修改。
- final 類
final 類不能被繼承,沒有類能夠繼承 final 類的任何特性。
abstract 修飾符,用來創建抽象類和抽象方法。
- abstract 抽象類
抽象類不能用來實例化對象,聲明抽象類的唯一目的是為了將來對該類進行擴充。一個類不能同時被 abstract 和 final 修飾。如果一個類包含抽象方法,那麽該類一定要聲明為抽象類,否則將出現編譯錯誤。
- abstract 抽象方法
抽象方法是一種沒有任何實現的方法,該方法的的具體實現由子類提供。抽象方法不能被聲明成 final 和 static。任何繼承抽象類的子類必須實現父類的所有抽象方法,除非該子類也是抽象類。
synchronized 和 volatile 修飾符,主要用於線程的編程。
- synchronized 關鍵字聲明的方法同一時間只能被一個線程訪問。synchronized 修飾符可以應用於四個訪問修飾符。
- volatile 修飾的成員變量在每次被線程訪問時,都強制從共享內存中重新讀取該成員變量的值。當成員變量發生變化時,會強制線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。
2、方法的調用
Java 支持兩種調用方法的方式,根據方法是否返回值來選擇。
1、當方法返回一個值的時候,方法調用通常被當做一個值。
1 public class Test1 { 2 public static void main(String[] args) { 3 int sum = add(6, 6); 4 System.out.println(sum); 5 } 6 7 public static int add(int a, int b){ 8 int sum = a + b; 9 return sum; 10 } 11 }
2、如果方法返回值是void,方法調用一定是一條語句。
1 System.out.println("move on");
3、方法的重載(overload)
方法重載:是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數列表(類型、個數、順序)參數類型、參數個數,參數順序、只要有一個不同。
如果一個類中存在了多個名字一樣的方法而編譯不報錯,那麽肯定就是重載
1 public class Overload { 2 /** 3 * 方法的重載,參數個數不同 4 * @param a 5 * @param b 6 */ 7 public static void add(int a, int b){ 8 9 } 10 11 public static void add(int a, int b, int c){ 12 13 } 14 15 public static void add(int a, int b, int c,int d){ 16 17 } 18 }
二、數組
1、數組的定義
java數組是用來存儲固定大小的同類型元素。相當於一個變量容器,存放多個數據
2、創建數組
1、動態創建數組
聲明後立即賦值創建,還可以 先聲明再賦值
語法格式:數據類型 [] 數組變量名 = new 數據類型[數組長度];
1 public class Test { 2 /** 3 * 動態創建數組 4 */ 5 @Test 6 public void testList(){ 7 int[] list = new int[2]; //創建數組 8 list[0] = 1; //存放數據 9 list[1] = 2; 10 11 System.out.println(list.length); 12 } 13 }
2、靜態創建數組
在創建數組的時候把已知的元素直接一次性放進去
語法格式:
- 數據類型 [] 數組變量名 = new 數據類型[] {多個以英文逗號分隔的數據};
- 數據類型 [] 數組變量名 = {多個以英文逗號分隔的數據};
1 public class Test1 { 2 /** 3 * 靜態創建數組 4 */ 5 @Test 6 public void test1(){ 7 int[] list1 = new int[]{1, 2}; 8 int[] list2 = {3, 4, 5}; 9 System.out.println(list1.length); 10 System.out.println(list2.length); 11 } 12 }
3、多維數組
多維數組可以看成是數組的數組,比如二維數組就是一個特殊的一維數組,其每一個元素都是一個一維數組。
1 public class ArrayTest { 2 3 public static void main(String[] args) { 4 int[] a = {1, 2, 3}; 5 int[] b = {4, 5, 6}; 6 int[] c = {7, 8, 9}; 7 8 int[][] arr = {a, b, c}; //創建二位數組 9 10 //遍歷二維數組 11 for (int i = 0; i < arr.length; i++) { 12 int[] m = arr[i]; 13 for (int j = 0; j < m.length; j++) { 14 System.out.print(m[j] + " "); 15 } 16 System.out.println(); 17 /*輸出結果:1 2 3 18 4 5 6 19 7 8 9 */ 20 } 21 } 22 }
Java基礎(四)