| 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{ //类体 } } 
 /*  * 定义了一个缺省修饰符的内部类,注:内部类不可以定义静态方法和类变量  * */ 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{    // 类体 }  } 
 /*  * 该类主要讲解静态方法,与非静态方法和修饰符调用情况  * */ 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  * */ 
 
 /*  * 该方法可以包含静态的东本,也可以包含非表态的东西  * */ public String c1_str1(){ C1  ca = new C1(); 
 String c1_str = ca.c1_St4; return c1_str; //可以写成 return c1_Str4(实例变量) ,也可以写成c1_Str5(类变量)  } 
 /*  * 方方法只能包含表态的东西,如果要包含非表态的东西,那么就得实例化  * */ public static String c1_str2(){  /* C1 c11 = new C1(); return c11.c1_Str5; */  return C1.c1_Str5;  //可以写成 return c1_Str5(类变量) ,但不能写 return c1_Str4(实例变量) } } 
 
 
 |