t1=p++; t2=--c; k=p++/--c; System.out.println(p); System.out.println(c); System.out.println(k);
时间: 2024-04-30 07:21:11 浏览: 12
假设p的初始值为3,c的初始值为5,则执行完以下代码后的输出结果为:
```
p=4
c=4
k=1
```
解释如下:
- `t1=p++`:先将p的值4赋值给t1,然后将p的值加1,即p的值变成了5。
- `t2=--c`:先将c的值减1,即c的值变成4,然后将c的值4赋值给t2。
- `k=p++/--c`:先计算`p/--c`的值,即3/4的结果为0,然后将0赋值给k。之后再将p的值加1,即p的值变成了4。
- 最后输出p、c、k的值,分别为4、4、0。
相关问题
class t{ int m; public t(int m){this.m=m;} public t change(t t1){ t1=this; t1.m=14; return t1; } } 执行如下代码,输入结果? t t1=new t(10); t t2=new t(20); t t3=t1.change(t2); t3.m=80; System.out.println(t1.m); System.out.println(t2.m); System.out.println(t3.m);
输出结果为:
```
14
20
80
```
解释:
- 首先创建了两个 `t` 类型的对象 `t1` 和 `t2`,并分别初始化为 `10` 和 `20`。
- 调用 `t1` 的 `change` 方法,传入参数 `t2`,并将 `t2` 的值赋给 `t1`。此时 `change` 方法中的 `t1` 指向了 `t2` 所指向的对象,即 `t1` 和 `t2` 指向了同一个对象。
- 在 `change` 方法中,将 `t1.m` 的值修改为 `14`,然后返回 `t1`。
- 然后在主函数中,将 `t3` 的值赋为 `t1.change(t2)` 的返回值,即 `t1` 自身,此时 `t3` 和 `t1` 指向了同一个对象。
- 最后修改 `t3.m` 的值为 `80`,输出 `t1.m`、`t2.m` 和 `t3.m` 的值分别为 `14`、`20` 和 `80`。
public class Test09 { public static int k = 0; public static Test09 t1 = new Test09("t1"); public static Test09 t2 = new Test09("t2"); public static int i = print("i"); public static int n = 99; public int j = print("j"); { print("构造块"); } static{ print("静态块"); } public Test09(String str){ System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++n; ++i; } public static int print(String str){ System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++n; return ++i; } public static void main(String[] args) { } }
这段代码主要是用于测试Java中类的初始化顺序和静态代码块与构造代码块的执行顺序。代码中包含了静态变量、静态代码块、普通变量、构造代码块和构造方法,这些代码块和方法的执行顺序如下:
1. 静态变量和静态代码块的初始化顺序按照定义的顺序执行,即先执行`public static int k = 0;`,然后执行`public static Test09 t1 = new Test09("t1");`,再执行`public static Test09 t2 = new Test09("t2");`,最后执行`public static int i = print("i");`和静态代码块`static{ print("静态块"); }`。执行完毕后,静态变量`k`的值为4,静态变量`t1`和`t2`分别对应两个`Test09`对象的引用,静态变量`i`的值为3,静态变量`n`的值为100。
2. 执行`public Test09(String str)`构造方法时,先执行`{ print("构造块"); }`构造代码块,再执行构造方法中的代码。由于创建了两个`Test09`对象,因此构造方法和构造代码块各被执行了两次。执行完毕后,普通变量`j`的值为2。
3. 在`main`方法中没有代码,因此程序直接结束。
最终输出的结果为:
```
1:t1 i=1 n=99
2:构造块 i=2 n=100
3:t2 i=3 n=101
4:构造块 i=4 n=102
5:i i=5 n=103
6:静态块 i=6 n=104
```
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)