Java中使用结构体时遇到的问题
来源:互联网 发布:软件著作权 发表状态 编辑:程序博客网 时间:2024/05/20 21:45
在程序设计中,需要使用到一个点的结构体,这个结构体比较简单,如下所示:
public static class Point{public static int x;public static int y;}
这时需要一个类型为Point的数组,当声明了一个长度为4的数组,并初始化后,效果是这样的:
public class test_struct {public static class Point{public static int x;public static int y;}public static void main(String[] args) {int length=4; Point[]points=new Point[length];for(int i=0;i<length;i++){points[i]=new Point();points[i].x=i+1;points[i].y=i+1;}for(int i=0;i<length;i++){System.out.println(points[i].x+" "+points[i].y);}}}
程序输出:
4 4
4 4
4 4
4 4
而预想结果应该是:
1 1
2 2
3 3
4 4
为什么会出现这种情况呢?明明已经对这个数组初始化了啊!原来问题出现在static上,我们回过头来在来看看声明的结构体类:
public static class Point{public static int x;public static int y;}
这样声明是错的,正确的方式应该是:
public static class Point{public int x;public int y;}
去掉static,因为如果声明为static后,x和y这两个变量就为静态变量了,在程序初始化之前,他们就已经存在了。
而且在当前所有数组元素中,公用一个x和y,关于初始化函数的执行顺序,其实在学习c++时,老师就强调了很多遍了,自己任然犯错,说明自己的基础知识还是不够扎实。
阅读全文
0 0
- Java中使用结构体时遇到的问题
- java中condition使用遇到的问题
- Delphi结构中使用String时遇到的内存泄露问题
- 使用extern声明结构体遇到的问题及解决办法
- java中遇到的问题...
- java中遇到的问题
- JAVA中遇到的问题
- java中遇到的问题
- 使用javap工具解决Java中遇到的问题
- java Gson使用中遇到的Date格式问题
- 浅谈java.awt使用过程中遇到的问题
- java中replace 和replaceAll使用遇到的问题:
- 使用java连接hive过程中遇到的问题
- 在java中使用Mysq数据库遇到的一些问题
- Java字符串方法使用中遇到的问题
- 我遇到的结构体问题
- 详解EVENTLOGRECORD结构体遇到的问题
- scrollview 中使用中遇到的问题
- 爬取csdn部分博文
- 编译器之词法分析器
- Python缓冲池初探
- TensorFlow 中遇到的坑
- 动态绑定
- Java中使用结构体时遇到的问题
- SparkSQL实战
- sql中in和exist语句的区别
- 连续子数组的和的最大值、最小值以及和的绝对值的最大值、最小值
- LeetCode#33. Search in Rotated Sorted Array
- 网络编程练习字符串反转
- 关于unity结构体struct和类class的使用细节和注意事项!
- 文章标题
- Python3 网络套接字(socket / socketserver)