java题求详解
packagecertkiller;classTarget{publicStringname="hello";}哪些类能够直接访问并且改变name这个变量的值。代码片段1...
package certkiller;
class Target {
public String name = "hello";
}
哪些类能够直接访问并且改变name这个变量的值。
代码片段1:
public class ComplexCalc {
public int value;
public void calc() { value += 5; }
}
代码片段2:
public class MoreComplexCalc extends ComplexCalc {
public void calc() { value -= 2; }
public void calc(int multi) {
calc();
super.calc();
value *= multi;
}
public static void main(String[] args){
MoreComplexCalc calc = new MoreComplexCalc();
calc.calc(3);
System.out.println("Oh it is: " + calc.value);
}
}
请问编译运行的结果是什么?
value没被赋值自动赋0? 求详解
class Sudo {
static void telnet() { /* 这里是省略的代码 */ }
void ssh() { /* 这里是省略的代码 */ }
}
请问哪些选项的描述是正确的?
A
Sudo.ssh()能够正确调用ssh()方法
B
Sudo.telnet()能够正确调用telnet()
C
在ssh()方法里面,能够直接调用telnet()
D
在telnet()方法里面,能够直接调用ssh() 展开
class Target {
public String name = "hello";
}
哪些类能够直接访问并且改变name这个变量的值。
代码片段1:
public class ComplexCalc {
public int value;
public void calc() { value += 5; }
}
代码片段2:
public class MoreComplexCalc extends ComplexCalc {
public void calc() { value -= 2; }
public void calc(int multi) {
calc();
super.calc();
value *= multi;
}
public static void main(String[] args){
MoreComplexCalc calc = new MoreComplexCalc();
calc.calc(3);
System.out.println("Oh it is: " + calc.value);
}
}
请问编译运行的结果是什么?
value没被赋值自动赋0? 求详解
class Sudo {
static void telnet() { /* 这里是省略的代码 */ }
void ssh() { /* 这里是省略的代码 */ }
}
请问哪些选项的描述是正确的?
A
Sudo.ssh()能够正确调用ssh()方法
B
Sudo.telnet()能够正确调用telnet()
C
在ssh()方法里面,能够直接调用telnet()
D
在telnet()方法里面,能够直接调用ssh() 展开
2个回答
展开全部
1 public 是公共的意思 只要能访问Target这个类 就能访问name变量并去修改它的值
2 结果应该是 Oh it is: 15 成员变量未被初始化时有默认值 int类型是0, 局部变量必须被初始化
3 应该选 B、C
不懂 可以追问
2 结果应该是 Oh it is: 15 成员变量未被初始化时有默认值 int类型是0, 局部变量必须被初始化
3 应该选 B、C
不懂 可以追问
追问
1、只有certkiller包下的类可以访问改变name吗?为什么?
3、a、d为什么不行 其实我有答案 求详解。。
追答
对 是可以访问的 因为name的修饰符是public的 但要通过Target类对象来访问
3. 静态方法(static 修饰的方法)可以通过类名来访问 非静态方法里可以调用静态方法,但静态方法里不能调用非静态方法 一般的方法叫实例方法,你可以去百度一下静态方法与实例方法的区别 我这一两句也跟你说不清楚
遇到问题要多查
展开全部
certkiller包下的类可以访问改变name,原因是该类并不是public型的,所以被限制到同包名的下面的类才能访问。
结果是 Oh it is: 9 value被初始化时默认值为0,由于调用void calc(int multi)时,先调用了自身的calc();则得到的value的值应该是-2,接着调用的super.calc(),也就是vaule的值加上5,所以变成了value=3,再运算value *= multi;时,得到的value=9。
B、C,其中 A错误的原因是ssh()方法并不是静态,在这个类未被实例化时该方法未被程序加载到内存中,所以不能够被直接调用;D错误的原因是静态的方法体中只能引用静态的方法和变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询