文章目录
  1. 1. 创建数组
    1. 1.1. 创建对象数组
    2. 1.2. String对象是异类吗?

引言:没有指针真难过。


创建数组

创建对象数组

Dog[] dogs=new Dog[8];仅仅是创建(声明)一个数组(指针),并没有为对象分配空间,也就是说并没有创建对象。

1
2
3
Dog[] dogs=new Dog[8];
dogs[0].name="Stephon";
dogs[0].dark();

上述代码是错误的,编译不通过,因为dogs[0]对象还不存在。

我们必须要进行的是Dog[0]=new Dog();等操作来给指针分配空间(创建对象)。
如:

1
2
for(int i=0;i<8;i++)
dogs[i]=new Dog();

天哪,使用循环来创建数组对象,贼JB恶心。

而使用foreach的

1
2
for(Dog x:dogs)
x=new Dog();

是不合规的……我知道这里不该写Dog x,但是我不知道怎么写指针Dog……

没有指针的JAVA真难用……怀念C一秒钟……

String对象是异类吗?

先贴代码:

1
2
3
String[] strArrays=new String[3];
strArrays[0]="hello";
System.out.println(strArrays[0]);

这样的代码居然是正确的!!!

别急,我们平下心来分析一波,String真的是异类吗?

实际上不是的。String的"="运算符被重载了,也就是说strArrays[0]="hello"相当于strArrays[0]=new String(“hello”),清楚了这一点就明白了。

文章目录
  1. 1. 创建数组
    1. 1.1. 创建对象数组
    2. 1.2. String对象是异类吗?