2024-04-21 10:29:46 | 我爱编程网
2 (1)内部类不能放置static变量,故选C
(2)解析:A选项:和接口有关的匿名类不能是abstract class,因为其不能实例化;
B选项:有且仅有实现一个interface
D选项:static变量属于类
3 (1)类似一个覆盖override,当然会实现new对象里的method,故输出结果为“大家好,祝工作顺利”
(2)输出P是接口变量,这就是所谓的匿名内部类。是多态最核心的体现。
(3)无论try 或是 catch是否有return 语句,finally一定会run,所以最后输出语句为“你好 ”
“ fine thanks”
public class Mystery {
/**
* @param String[] args 接收输入参数 args[0] args[1]
* @return void
*/
public static void main(String[] args) {
Changer c = new Changer();
c.method(args);
System.out.println(args[0] + " " + args[1]);
}
static class Changer {
/**
* 交换字符数组位置0和1的值
* 在java中,参数传递都是值传递
* 所以这里变量s和args的本身地址是不一样的
* 但是他们所指向的输入参数字符数组地址是一样的
*
* @param String[] s 要交换的字符数组
*/
void method(String[] s) {
String temp = s[0];
s[0] = s[1];
s[1] = temp;
}
}
}
输入:Mighty Mouse我爱编程网
存放的结构为:
参数对象:String[] {"Mighty", "Mouse"} 暂且命名为 args_obj(这个在java内部就是一地址)
变量args指向这个地址:args->args_obj
再调用method时,变量s指向args指向的地址:s->args_obj
故结果为:
[答案] 打印:Mouse Mighty
public class Pass{
/**
* 定义静态变量
* 意思就是说定义后,所有对j的修改都会保留下来
*/
static int j=20;
public static void main(String argv[]){
/**
* i 为局部变量,在方法内部调用后,外部值不发生变化
*/
int i=10;
Pass p = new Pass();
p.amethod(i);
System.out.println(i);
System.out.println(j);
}
/**
* 由于java传递参数是复制传递(值传递),故内部的x和外部的i是两个不同的变量
* 内部x的修改不会影响到外部的i变量
*/
public void amethod(int x){
x=x*2;
j=j*2;
}
}
[答案] 打印:10 40
我爱编程网(https://www.52biancheng.com)小编还为大家带来java习题 运行结果的相关内容。
--、++运算不会立即改变变量值,
所以x--==2是true,y++==2也为true;
所以x--==2&&y++==2 为true;
此后x变为1,y变为3;
if条件语句的或 “||”,a||b,若a=true,则无需判断b,所以z++==2其实是没有执行的,所以z = 2;
最后一行
System.out.println("x="+x+",y="+y+",z="+z);
括号里的“”只是代表里面的是字符串“x=”输出后就是一个字符串 x=而已
+号是衔接字,"x="+x+",y="+y+",z="+z,可以看到括号里包含3个字符串:
"x=" 、",y="、",z=" ,每个字符串后面接(+)了一个变量的值,最终拼凑成答案3的结果。
2024-01-05 14:11:24
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01