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

📄 j02060206.java

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

class j02060206
{
	public static void main(String para[])
	{
		myClass testObj = new myClass();
		System.out.println("==== testObj.myFun() =================" );
		testObj.myFun();
		System.out.println("==== testObj.subMyFun() =================" );	 
		testObj.subMyFun();
		//System.out.pritnln(mtestObj.testS1);  
		 /* 错误,testS1 只是 myClass 的区域变量,
		   有效范围只在 subMyFun() 内,无法在此存取*/
		
		System.out.println("==== myClass.myStaticFun() =================" );	
		myClass.myStaticFun(); //可直接使用 myClass 的 static 方法
		myClass.testVar2 = new Double(33.333); //可直接使用 myClass 的 static 成员,此处仍在 testVar 的有效范围内
		System.out.println( "In j02060206 main(), myClass.testVar2.doubleValue() = " 
  	                     + myClass.testVar2.doubleValue() ); 
  	 	
	}	
}

class myClass
{
  public Integer testVar; //对象实体未建构
  public static Double testVar2; //对象实体未建构
    
  public void myFun()
  {
		Integer myObj = null;
		//System.out.println( myObj.intValue() );  
		/* 编译能过,但 myObj 没有参考的实体,但是使用成员时,
		   将产生 NullPointerException 的执行期错误 */
		   		
		//===============================================================================
		testVar = new Integer(1000);  //建构了 testVar 的对象实体
		int var1= testVar.intValue();  // 使用 testVar 的成员,testVar 存在
		System.out.println("In myFun(), var1 = testVar.intValue() = " + var1);
		
		subMyFun();  //在 subMyFun() 内 testVar = null,解除对实体的参考		
		//int var2 = testVar.intValue();  //执行期错误,testVar 目前没有参考的实体,不能使用成员
		//System.out.pritnln(testS1);  //错误,testS1 对象的有效范围只在 subMyFun() 内
		
		testVar = new Integer(3000); 
		/*在 testVar 对象有效范围内,可再次建构 testVar 对象的实体,但新建的
		  实体与前面的是不同的空间,故 testVar.intValue()与之前取得之值不同*/  
		int var3 = testVar.intValue(); //使用 testVar 的成员,testVar 存在
		System.out.println( "In myFun(), var3 = testVar.intValue() = " + var3 );
		
		testVar = null; //解除对目前之对象实体的参考			
  }
  
  public void subMyFun()
  {
  	int IntV1;
  	if( testVar!=null )
  	{   //testVar 有对象实体
  		System.out.println( "In subMyFun(),testVar != null" );
  		IntV1 = testVar.intValue();
  		System.out.println( "In subMyFun(),IntV1 = testVar.intValue() = " + IntV1 );
  	}
  	else
  	{ //testVar 没有对象实体
  		System.out.println( "In subMyFun(),testVar == null" );
  		testVar = new Integer(1999);
  		IntV1 = testVar.intValue();
  		System.out.println( "In subMyFun(),IntV1 = testVar.intValue() = " + IntV1 );
  	}	
  	
  	testVar = null;   //解除对象参考,之后对象实体会被自动收拾
  	//int IntV2 = testVar.intValue(); //执行期错误,testVar 目前没有参考的实体,不能使用成员
  	
  	//============================================================================================ 
  	 	 	
  	String testS1 = new String("fish swimming away"); //testS1 是一个区域变量
  	System.out.println( "In subMyFun(), testS1 = " + testS1 );
  	System.out.println( "In subMyFun(), testS1.length() = " + testS1.length());
  } //testS1 对象生命周期结束,对象实体会被自动收拾	
  
  public static void myStaticFun()
  {
  	testVar2 = new Double(88.888);
  	System.out.println( "In myStaticFun(), testVar2.doubleValue() = " 
  	                     + testVar2.doubleValue() );  	
  }
}	

⌨️ 快捷键说明

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