黑马程序员技术交流社区

标题: 类中new的c和主函数new的c有什么不同吗?希望能详细说一下 [打印本页]

作者: 明天你好    时间: 2014-2-26 18:02
标题: 类中new的c和主函数new的c有什么不同吗?希望能详细说一下
//这主函数里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();
}
}


作者: 自由自在2014    时间: 2014-2-26 18:21
作用域不一样
作者: 乔青山    时间: 2014-2-26 18:22
这是两个对象,当然都是Car类的对象
但是,
第一点:在堆内存上,是分别开辟一个空间的,所以说是两个对象
第二点:类中的对象是可以调用类中的成员的(比如pirevate),但是主函数中的对象是类外的成员,所以对于private修饰的成员是不可以访问的。
作者: 小程序员    时间: 2014-2-27 15:51
两个虽然都是用c,但是却是car的两个对象,你也可以用其他字母代替试试,不要被字母一样所迷惑
作者: flying    时间: 2014-2-27 20:14
这是两个对象  名字相同 类型相同
两个对象的生命周期也不一样
就好想你在一个方法总声明了一个字符串String str=“nihao”
在另一方法中也声明了一个字符串String str="nihao"
这两个字符串除了名字一样但显然是两个不同的字符串对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2