java中给对象数组赋值问题

公共类中:
circle[] a=new circle[5];
a[0].radius=2;
a[1].radius=10;
a[2].radius=8;
a[3].radius=4;
a[4].radius=12;

公共类之外
class circle{
int radius;
}

这样赋值为何不对?

    Circle [] a=new Circle[5];
    Circle a1=new Circle();
    a1.radius=2;
    a[0]=a1;
    要这样写

你定义了一个Circle数组,但Circle每一个元素并没有实例化(new),所以a[0].radius为null,因此就报错了。

Circle [] a=new Circle[5]; 相当于: 你买了5个装鸡蛋的空篮子,篮子没鸡蛋,假如是你想做蛋炒饭,还是要去超市的买

公共类哪里找得到radius?,这是在circle类里的,又没有传递。

理解一下对象和引用的区别;