標籤:其他 不同 code rac 靜態 基本 ali pack strong
匿名對象是在建對象時只有建立對象的語句方法而沒有把對象的地址賦值給變數,匿名對象只能調用一次方法,想再調用時需要再建立一個新的匿名對象
建立普通對象:Person p =new Person();
建立匿名對象:new Person().方法名();
new Person().setName("王無");
內部類:寫在其他類的內部或者成員位置或局部位置,這是其他類叫外部類。在內部類中可以訪問外部類的屬性。
當內部類寫在成員位置時,叫成員內部類,寫在局部位置時,叫局部內部類。
成員內部類定義格式: 跟定義普通的類基本一樣
class 外部類名{
public class 內部類名(){}
}
訪問方式:外部類名 內部類名 變數名 =new 外部類名().new 內部類名()
public class a { //外部類 class b{ //內部類 public void c(){ System.out.println("這是一個成員類"); } }}
a.b aa= new a().new b(); aa.c();
局部內部變數的定義方式:
class 外部類名{
修飾符 傳回值 方法名(){
class 內部類{其他代碼}
}
}
訪問方式:在外部建立內部類對象,在main方法中調用方法
package com.oracle.demo04;public class a { //外部類 public void c(){ class d{ //內部類 public void e(){ System.out.println("這是一個內部類"); } } new d().e(); }}
a aa =new a(); aa.c();
修飾符
| |
public |
protected |
default |
private |
同一類中 |
√ |
√ |
√ |
√ |
同一包中(子類與無關類) |
√ |
√ |
√ |
|
不同包的子類 |
√ |
√ |
|
|
不同包中的無關類 |
√ |
|
|
|
l 要想僅能在本類中訪問使用private修飾;
l 要想本包中的類都可以訪問不加修飾符即可;
l 要想本包中的類與其他包中的子類可以訪問使用protected修飾
l 要想所有包中的所有類都可以訪問使用public修飾。
l 注意:如果類用public修飾,則類名必須與檔案名稱相同。一個檔案中只能有一個public修飾的類。
代碼塊
局部代碼塊是定義在方法或語句中
構造代碼塊是定義在類中成員位置的代碼塊
特點:
優先於構造方法執行,構造代碼塊用於執行所有對象均需要的初始化動作
每建立一個對象均會執行一次構造代碼塊。
靜態代碼塊是定義在成員位置,使用static修飾的代碼塊。
特點:
它優先於主方法執行、優先於構造代碼塊執行,當以任意形式第一次使用到該類時執行。
該類不管建立多少對象,靜態代碼塊只執行一次。
可用於給靜態變數賦值,用來給類進行初始化。
1 package com.oracle.demo04; 2 3 public class Static { 4 private String name; 5 private int age; 6 /*構造代碼塊,建立一個對象執行一次*/ 7 //構造代碼塊 8 { 9 System.out.println("這是構造代碼塊");10 }11 /*靜態代碼塊,在該類第一次建立對象時,執行一次,以後不管再建立多少個,都12 * 不執行了,就執行一次,優先於其他代碼塊*/13 //靜態代碼塊14 static{15 System.out.println("這是靜態代碼塊");16 }17 //局部代碼塊18 public void show(){19 System.out.println("這是局部代碼塊");20 }21 }
java 匿名對象,內部類,修飾符,代碼塊