课后作业3
问题1:
解决:
问题2:
解决:
结果截图如下:
原因:
问题3:
解决:
结果截图为:
总结:
问题4:
解决:
代码如下:
package demo;
public class Tset1 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Tes2 test=new Tes2(); //实例化对象
Tes2.jingTai(test); //调用静态方法
}
}
class Tes2
{
public int value=100;
public void setValue(int value)
{
this.value=value; //赋值函数
}
public int getValue()
{
System.out.println("输出结果为:"+value); //输出类成员的函数
return 0;
}
public static void jingTai(Tes2 test) //静态方法
{
test.value=200;
test.setValue(300);
test.getValue();
}
}
在Tes2类中定义了一个静态方法,要想能够访问类的实例成员,需要在静态方法中包含参数,类型为Tes的对象,用来调用参数的成员与方法。
问题5:
输出结果如图:
解决:
运用javap反编译,先将代码存放到记事本中,将文件命名为.java文件,将保存类型改为所有文件后保存在指定文件夹中,用cd命令调转到当前指定文件夹中,然后用javac+文件名.java,注意空格,生成.class文件后,再输入javap -c+文件名,同样也要注意空格,就会输出反编译的结果。
可以看到调用了Intege的valueOf函数,在源文件中查看源码,发现结果如下:
调用了不同的函数,第一次调用了valueOf(int)的函数,而第二次调用了valueOf(String),函数导致输出的结果不同。