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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//这主函数里new了一个对象c,但是调用的方法run()里也创建了一个c对象,请问这两个同名对象有什么不同吗?
class Car{
String color="red";
void run(){
  Car c=new Car();
   System.out.println(color);
           }
}


public class Test8 {
    public static void main(String[] args) {  
       Car c=new Car();
//c.color="blue";
c.run();
}
}

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

倒序浏览
作用域不一样
回复 使用道具 举报
这是两个对象,当然都是Car类的对象
但是,
第一点:在堆内存上,是分别开辟一个空间的,所以说是两个对象
第二点:类中的对象是可以调用类中的成员的(比如pirevate),但是主函数中的对象是类外的成员,所以对于private修饰的成员是不可以访问的。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
两个虽然都是用c,但是却是car的两个对象,你也可以用其他字母代替试试,不要被字母一样所迷惑
回复 使用道具 举报
这是两个对象  名字相同 类型相同
两个对象的生命周期也不一样
就好想你在一个方法总声明了一个字符串String str=“nihao”
在另一方法中也声明了一个字符串String str="nihao"
这两个字符串除了名字一样但显然是两个不同的字符串对象

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马