📄 j02060206.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 + -