BedeclDome.java
package bedeck; public class BedeckDome { /* * 實例變量 * */ //類中不能實例化對象 public String str1; //無初始值,可以被任何類訪問 protected String str2; //無初始化值,可以被同一包中的所有類訪問,可以被所有子類訪問 private String str3; //無初始化值,只能夠被當前類的方法訪問 String str4 ; //無初始化值,可以被同一包中的所有類訪問 String str5 = "str5"; //有初始值 /* * 類變量 * */ static String strA,strB,strC; //無初始值 static String strD = "strD"; //有初始值 /* *實例變量初始化器 * */ { str1 = "str1"; //對字符串,str1,str2初始值 str2 = "str2"; strC = "strC"; //實例變量初始化器可以對類變量進行初始化,但達不到預期的結果,值為null } /* * 類變量初始化器 * */ static{ strA = "strA"; //對字符串,strA,strB初始化 strB = "strB"; //str3 = ""; //不可以對實例變量進行初始化,否則出錯 } /* * 構造方法 * */ BedeckDome(){ //可加修飾符,也可不加 } /* * main()方法 * */ public static void main(String args[]){ /* * 定義s1,s2為局部變量,注:局部變量不能有public,static,private等修飾符 * */ String s1 ; String s2 ="s2"; //初始化 BedeckDome id2 = new BedeckDome(); //實例化對象 System.out.println("輸出類BedeckDome中實例變量中字符串的值:\t str1="+id2.str1+",str2="+id2.str2+",str3="+id2.str3+",str4="+id2.str4); System.out.println("輸出類bedeckDome中類變量的值1:\t"+id2.strA); id2.str(); //用實例化對象調用str()方法 id2.callC1_Test(); /* *同一包中的使用test類中的變量和方法 * */ Test t = new Test(); System.out.println("test類中的pulbic變量:"+t.test_str1); System.out.println("test類中的protected變量:"+t.test_str2); //變量test_str3則無法在此類中輸出 System.out.println("test類中的缺省修飾符變量:"+t.test_str4); /* * 方法同理 * */ } public void str(){ System.out.println("另一種輸出類BedeckDome中實例變量中字符串的值:\t str1="+str1+",str2="+str2+",str3="+str3+",str4="+str4+"\n"); System.out.println("輸出類bececkDome中的變量的值2:\t"+strA); System.out.println("輸出類bececkDome中的變量的值3:\t"+BedeckDome.strA); /* * 訪問內部類中的方法和變量 * */ System.out.println(" 訪問內部類中的變量"); Internal it = new Internal(); it.innerOut(); System.out.println("內部類中的變量:\t internal_str1="+it.internal_str1); } public void callC1_Test(){ C1 cc = new C1(); System.out.println(""+cc.c1_str1()); System.out.println(cc.c1_str2()); } /* * 方法中定義類 * */ public void innerD(){ class innerD_class{ //類體 } } /* * 定義了一個缺省修飾符的內部類,注:內部類不可以定義靜態(tài)方法和類變量 * */ class Internal{ String internal_str1 = "internal_str1"; //定義了一個內部類變量 /* * 構造方法 * */ Internal(){} public void innerOut(){ BedeckDome dbInternal = new BedeckDome(); //建立一個實例化對象,dbInternal /* * 內部類可以訪問外部類的變量 * */ //dbInternal.str(); //不能訪問方法 System.out.println("輸出類InternalDome中的實例變量值:\t"+dbInternal.str5); System.out.println("輸出類InternalDome中類變量值:\t"+dbInternal.strC+"\t類變量中的另一種輸出方式:\t"+strC); System.out.println("輸出類部類Internal中定義變量的值:\t"+internal_str1); } /* * 類嵌套 * */ class InIn{ //類體 } } /* * 定義一個被保護的內部類,該類只能被該類和子類訪問 * */ protected class ProInternal{ // 類體 } } /* * 該類主要講解靜態(tài)方法,與非靜態(tài)方法和修飾符調用情況 * */ class C1{ public String c1_Str1; //無初始值,可以被任何類訪問 protected String c1_Str2; //無初始化值,可以被同一包中的所有類訪問,可以被所有子類訪問 private String c1_str3; //無初始化值,只能夠被當前類的方法訪問 String c1_St4 = "c1_Str4"; static String c1_Str5; /* * 構造方法 * */ C1(){ } /* * 實例化C1 * */ /* * 該方法可以包含靜態(tài)的東本,也可以包含非表態(tài)的東西 * */ public String c1_str1(){ C1 ca = new C1(); String c1_str = ca.c1_St4; return c1_str; //可以寫成 return c1_Str4(實例變量) ,也可以寫成c1_Str5(類變量) } /* * 方方法只能包含表態(tài)的東西,如果要包含非表態(tài)的東西,那么就得實例化 * */ public static String c1_str2(){ /* C1 c11 = new C1(); return c11.c1_Str5; */ return C1.c1_Str5; //可以寫成 return c1_Str5(類變量) ,但不能寫 return c1_Str4(實例變量) } } |
類Test.java
package bedeck; public class Test { public String test_str1 = "test_str1"; //無初始值,可以被任何類訪問 protected String test_str2 = "test_str2"; //無初始化值,可以被同一包中的所有類訪問,可以被所有子類訪問 private String test_str3 = "test_str3"; //無初始化值,只能夠被當前類的方法訪問 String test_str4 ; public void test1(){ } protected void test2(){ } } |