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{

//类体

}

}

/*

 * 定义了一个缺省修饰符的内部类,注:内部类不可以定义静态方法和类变量

 * */

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(实例变量)

}

}

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(){

}

}