1. 对象.方法()
2. 指针指向对象 可以写成 (*指针).方法()
3. 上面可以简写为 指针->方法()
struct X{char s[100];};
void foo(struct X *p)
{
printf("%s", p->s);
}
void bar()
{
X x;
//other code
pintf(x.s);
}
定义一个类就相当于创建了一个新的class类型。要使用类,还必须用已经定义的类去说明它的实例变量(即对象)。在C++中,class类型一旦被定义,它的实例变量(对象)就能被创建,并初始化,且能定义指针变量指向它。实例化的类就是对象。
在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。类的每个对象维护它自己的一份实例变量的副本。
java中的实例变量:编辑
含义:
与局部变量的异同:
局部变量:定义在方法之中的变量。
1. 局部变量要先赋值,再进行运算,而实例变量均已经赋初值。(这是局部变量和实例变量的一大区别)
2. 实例变量的对象赋值为null。
3. 局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。
4. 实例变量和局部变量允许命名冲突。
例子:
public class Sample
{
private int a=1; //实例变量
public void b()
{
int a=2; //局部变量
System.out.println("局部变量:a="+a);
System.out.println("实例变量:a="+this.a);//局部变量的作用域内引用实例变量:this.变量名
}
public static void main(String[] args)
{
new Sample().b();
}
如果一个指针
变量存放的是某个对象的地址,则称这个指针变量指向该对象。
。对内存中
变量的访问,过去用scanf("%d%d%f",&a,&b,&x)表示将数据输入变量的地址所指示的内存单元。那么,访问
变量,首先应找到其在内存的地址,或者说,一个地址唯一指向一个
内存变量,我们称这个地址为变量的
指针。如果将
变量的地址保存在内存的特定区域,用变量来存放这些地址,这样的变量就是
指针变量,通过
指针对所指向变量的访问,也就是一种对变量的“间接访问”。