1.字符串的比较用equal,否则实现不了想要的效果
在main中用了没事???
2.java数组
初始化长度后只用到几个,想要输出这几个的值,总是出现nullpointer问题
for(int j = 0 ; ;j++){
if(allcourse[j].equals(null))
break;
allcourse[j].print();
}
数组声明的时候是给的引用,在初始化之后给引用一个空间
static Course[] allcourse = new Course[100];
之后的应该是默认值才对,但是代码并没有这样
用arraylist实现
先把值放入arraylist中,再转换为数组
Course[] arr_course = (Course[])allcourse.toArray(new Course[0]);
for(int j = 0 ;j<arr_course.length ;j++){
arr_course[j].print();
}
arraylist的详解
https://www.cnblogs.com/lxqiaoyixuan/p/7156936.html
数组的初始化可以分为两种:
1、静态初始化
2、动态初始化
静态初始化:
例:
1
2
3
|
String[] str =
new
String[]{
"A"
,
"B"
,
"C"
};
String str[] =
new
String[]{
"A"
,
"B"
,
"C"
};
String str = {
"A"
,
"B"
,
"C"
};
|
动态初始化:
例:
1
2
3
4
|
String[] srt =
new
String[
3
];
srt[
0
] =
"A"
;
srt[
1
] =
"B"
;
srt[
2
] =
"C"
;
|
注意:不能同时
使用静态和动态两种初始化方式,也就是说不要在数组初始化的时候既指定数组的长度,又指定数组元素的值。
但是一下的代码是可以执行的
1
2
|
String str[] = {
"A"
,
"B"
,
"C"
};
str =
new
String[
3
];
|
但是反过来是不可以的,应为这样的方式是将str重新指向另一个内存地址,而{"A","B","C"}是静态初始化不能在数组初始化后在执行。