A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张钧杰 中级黑马   /  2012-3-23 00:00  /  2087 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Computer
{
        public void run()
        {
                System.out.println("电脑运行");
        }
}
class Teacher
{
        private String name;
        private Computer cmpt;
        Tercher(Sring name)
        {
                this.name = name;
                cmpt = new Computer();
        }
}
中的
cmpt = new Computer();为什么不这个么写Computer cmpt = new Computer();
难道 前面不用写Computer

8 个回复

倒序浏览
        private String name;
        private Computer cmpt;//这里已经声明了,所以不用再写Computer
        Tercher(Sring name)
        {
                this.name = name;
                cmpt = new Computer();
        }
}
回复 使用道具 举报
成员变量里已经定义过了
回复 使用道具 举报
private Computer cmpt;  因为你这里已经声明了这个变量啦 相当于是 Computer cmpt = null ;
回复 使用道具 举报
那可不可以写上呢
回复 使用道具 举报
private Computer cmpt;
  你在前面不是已经定义了吗?
  后面直接给 cmpt 赋值就好了!
  所以就 cmpt = new Computer();

其实就是这样

Computer cmpt = null;  没有赋值 ;
cmput = new Computer();  需要使用时才赋值!
回复 使用道具 举报
张钧杰 发表于 2012-3-23 00:05
那可不可以写上呢

应该是不可以,因为你之前已经声明了,再写就是又声明同样名字的变量。 你可以试试
回复 使用道具 举报
private Computer cmpt;

已经声明了,可以直接用
回复 使用道具 举报
王思兰 黑马帝 2012-3-23 00:11:57
9#
如果想写的话,就要把外面声明语句去掉
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马