java在一个类中定义一个属性,main方法中为什么点不出来!!

publicclassTeacher{privateStringname="sun";publicstaticvoidmain(String[]args){Teacher... public class Teacher {
private String name = "sun";

public static void main(String[] args) {
Teacher [] teacher = new Teacher[2];
//teacher[0].name="sun";

System.out.println(teacher[0].name);
System.out.println(teacher.length);
}
}

这段代码为什么运行为啥会抛出空值!!??明明Techer类中定义了name啊啊啊!话说明注释那行代码我重新给name赋值,好像还是会说我抛出空值!!这是为啥?????
展开
 我来答
不会横走的螃蟹
推荐于2017-10-06 · TA获得超过954个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:446万
展开全部
//你新定义的数组是空的,虽然长度是2,可是内容都是null。
//数组定义完之后要赋值的
public class Teacher
{
    private String name = "sun";
    
    public static void main(String[] args)
    {
        Teacher[] teacher = new Teacher[2];
        
        /**
         * 你新定义的数组是空的,虽然长度是2,可是内容都是null。 下面给teacher数组赋值
         */
        teacher[0] = new Teacher();
        teacher[1] = new Teacher();
        // teacher[0].name="sun";
        System.out.println(teacher[0].name);
        System.out.println(teacher.length);
    }
}
追问
我只是定义了一个Teacher类型的数组,指向是teacher,而没有数组里面放Teacher类!这样?
追答
你只是定义了一个容量是2的Teacher类型的数组,内容都是null,数组内容还没指向到内存中具体的内容,teacher[0] = new Teacher();这句话才是创建了一个Teacher对象,然后将数组的第一个值指向该对象,这样数组中才会有实际的数据
百度网友090def6
2014-04-26 · TA获得超过2211个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:712万
展开全部
Teacher [] teacher = new Teacher[2];
只是定义了一个数组,没有对里面的元素实例化
//teacher[0].name="sun"; 这个时候teacher[0]是没有具体对象的

Teacher [] teacher = new Teacher[2];

先实例化
teacher[0] = new teacher();
teacher[1] = new teacher();
// 再使用
teacher[0].name="sun";
teacher[1].name="sun1";
这样才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式