⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j02080309.java

📁 经典java教材《java完美经典》一书中源码的完全收集
💻 JAVA
字号:
import java.lang.*;

class j02080309
{	
	static String classType; 
	static String activeObj;
	String ObjName;

	static
	{ // 执行此程序 JVM 调用了 static main() 就立刻执行,总共只会执行一次
		classType = "j02080309";
		activeObj = null;
		System.out.println("执行 j02080309 的 static 语句块叙述句"); 	
	}
	
	public static String getClassType()
	{
		return classType;  // 或 return j02080309.classType,在 j02080309 类内可省略类名
	}
	
	protected static void setActive(String name)
	{
		activeObj = name;
		// activaObj = ObjName; //错误,不能在 static 方法内使用未配置实例的成员变量		
	}

	public j02080309(String name)
	{
		ObjName = name;
		setActive( ObjName );
	}

	public static testClass useTestClass(String name)
	{            //返回一个 testClass 的对象
		testClass Obj= new testClass(name);
		System.out.println("目前 activeObj = " + activeObj);
		return Obj;
	}

	public static void main(String[] para)
  {
		j02080309 mainObj1 = new j02080309("主对象一");
		System.out.println("目前 activeObj = " + activeObj);
		
		j02080309 mainObj2 = new j02080309("主对象二");
		System.out.println("目前 activeObj = " + activeObj);
							
		testClass Obj1 = new testClass("test 对象一");
		System.out.println("目前 activeObj = " + activeObj);
		testClass Obj2 = useTestClass("test 对象二");

		setActive( mainObj2.ObjName );
		System.out.println("目前 activeObj = " + activeObj);		
		Obj1.makeActive();
		System.out.println("目前 activeObj = " + activeObj);
		//System.out.println("目前 activeObj = " + j02080309.activeObj);  //上行同于此行,于类之 static 方法内不指出 j02080309 名也可
		System.out.println("目前 mainObj1.activeObj = " + mainObj1.activeObj);				
		System.out.println("目前 mainObj2.activeObj = " + mainObj2.activeObj);		
		
		System.out.println( "mainObj1 是 " + mainObj1.getClassType() 
		                     + " 类类型的对象" );		                                         
		/*======================================================*/                     
	  (new myApp()).main(null);		//只是测试 myApp 类的 main(),它也是类方法之一
  }
}

class testClass
{
	String ObjName = null;
	
	static
	{
		System.out.println("于此处初始化 testClass 类的 static 成员");
	}
		
	public testClass(String name)
	{
		ObjName = name;
		j02080309.setActive( ObjName );
	}
	
	public void makeActive()
	{
		j02080309.setActive( ObjName );
	}
}

/*=================== 测试类成员与实例成员的差别 ===========================*/
class myApp
{
	static String AppName;
	int cost;

	public static void showAppName(boolean showLeader)
	{
		if(showLeader)
			System.out.println( AppName + " == 幕后带头大哥:阿博");		
		else
			System.out.println( AppName );
	}
	
	public void setPrice(int NTdollar)
	{
		cost = NTdollar;
		System.out.println("价值新台币 " + cost + " 元");
	}
	
	public static void main(String[] para)
	{	
		AppName = "乌龙计画";  //使用类变量
		showAppName(true); //使用类方法
		
		myApp App1 = new myApp();
		App1.setPrice(200000000); //测试实例方法(instance method)的使用
	}
	
	static myApp obj = new myApp(); //测试,在 j02080309 之 main() 内再 new myApp() 也不会有无限循环的错误
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -