- 第一题:判断以下语句的输出结果(关于对象的调用)
静态变量有默认初始化
题目分析:
类变量(静态变量)和类函数(静态函数)的执行顺序,因为类变量有初始值,所以我们要先给他赋值,因次我们就要先进行他的操作
所以staic B b = new B();此时我们来在堆空间内生成对象
对象调用变量是直接去堆内所属空间内找,如果没有则去静态里找
解题思路:
第一步:先编译BTest.java文件,生成BTest.class和B.class文件
第二步:然后将生成的class文件加载进方法区中
第三步:当staic B b = new B();加载进方法区中时就需要在堆中创建对象,开空间分配地址,
第四步:因为创建了对象,所以B的构造函数就需要进栈,因此在主函数进栈之前我们就已经生成了一个对象。
第五步:此时主函数进栈,执行第一句话,创建对象–在堆中开空间分配地址
第六步:然后构造函数进栈,
操作图如下:
所以结果如下:
总结
这个题我们首先要了解这一下几点:
1.静态的优先级高于非静态,所以在类中,我们先执行静态
2.静态变量的优先级高于静态函数,因为变量需要有默认初始化,所以要先执行静态变量
3.对象要调用变量,则是直接去对象的堆内存空间中找。 - 第二题:五子棋(数组的应用)
题目要求:人自己和自己玩,率先到达五子就赢
题目分析
1.玩游戏要有棋盘,所以让电脑要先生成棋盘
2.游戏开始,玩家开始下棋
3.率先到达五子便游戏结束
解题思路
1.利用二维数组生成棋盘
2.对棋盘经行初始化
3.打印棋盘
4.开始游戏–玩者开始输入坐标玩游戏–输入之后再次打印棋盘-但若输入的位置已有棋子,那么则提示重新输入坐标
5.最后到达如图所示的五子任意一种情况,则游戏结束。
参考代码如下:
JavaSE--例题分享
猜你喜欢
转载自blog.csdn.net/qq_45161607/article/details/103339501
今日推荐
周排行