黑马程序员技术交流社区
标题:
关于面向对象成员变量的赋值
[打印本页]
作者:
黄长利
时间:
2012-3-20 19:13
标题:
关于面向对象成员变量的赋值
看视频中,老师讲的是在java中指挥对象的方式是: 对象.对象成员
如下:
class Car
{
//描述颜色
String color = "红色";
//描述轮胎数
int num = 4;
//运行行为。
void run()
{
System.out.println(color+".."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
//生产汽车。在java中通过 new 操作符来完成
//其实就是在堆内存中产生一个实体。
Car c = new Car(); // c 就是一个类类型变量。记住:类类型变量指向对象。
//需求:将已有车的颜色改成蓝色。指挥该对象做事情,在java中的指挥方式是:对象.对象成员
c.color = "blue";
}
}
复制代码
其中 c 应该是一个对象呢,还是说是一个指向对象的变量名呢?
如果是变量名,那么指挥对象操作的格式是不是 "对象名.对象成员 "呢?
作者:
陈汉帆
时间:
2012-3-20 19:55
是的,c是指向对象的变量名,c存储在栈内存中,它的值是对象的引用,
非静态变量或方法是以"对象名.对象成员 "格式操作,如果是静态变量或方法还可以以“类名.对象成员”来操作
作者:
魏群
时间:
2012-3-20 20:07
c只是一个引用,
Car c = new Car(); 执行后会在栈内存里声明一个Car的引用c,在堆内存中产生一个新的Car对象,并把这个的对象和c连接起来。
对象名.对象成员这样的用法是正确的。
还有如果类的成员变量是被static 修饰的时候,这个成员变量是属于类的,是这个类的所有对象共有的。
调用的时候要用类名.成员变量。
作者:
周建
时间:
2012-3-20 20:47
c是一个类类型的变量,类一加载就在栈内存中开辟一个空间,new Car()在堆内存创建一个对象,并把该对象的地址值付给c,此时c就是对象的引用,c.num实际上就是用对象调用成员
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2