实例变量的学习心得

今天早上看Ruby的时候,发现一个新名词叫实例变量(instance variable) ,看了半天也没明白是怎么回事。到单位后马上Google了一把,发现这个名词实际上出自java,于是乎上java.sun.com上搜索一下。发现一遍文章讲的还是很透彻的。现总结如下。Java中除了实例变量还有一个概念叫类变量(class variable),这两个变量是相互对应的。要充分理解他们的含义首先要明白类和实例也就是类和对象的关系,在Java中一切都是对象,但是对象是类的个例,定义对象前要先定义类,就是把对象再抽象一个层次,比如最普遍的例子就是多边形的例子,有3个对象:四边形、圆形和三角形,现实中的一切都可以定义为对象,接下来再对这3个对象进行抽象,得到一个多边形类,这3个对象都是多边形类的个例也就是多边形类的孩子。那么由类到个例的这个动作称为实例化,个例(也就是对象)就是实例化的结果称为类的实例。到此,引出了实例变量和类变量的关系了,实例变量就是用在实例(对象)中的变量,类变量也就是用在类中的变量,类变量还有一个名字叫做静态变量。换句话说,类变量是在所有的由该类派生出的实例中共有的,这些实例都是修改和访问这个变量;而实例变量是各个实例所各自拥有的,其他实例是无法访问的。

另外,静态变量的所有权是归类的,也就是说每个类可以定义相同名字的静态变量。见如下的示例:

package java_sample;
import java.util.*;

class test14_1{
 private static int i = 0;
 public int get_i() {return i;}
}

class test14_2 {
 private static int i=9;
 public int get_i() {return i;}
}
public class test14 {
 public static void main(String[] args){
  test14_1 class1 = new test14_1();
  test14_2 class2 = new test14_2();
  System.out.println(class1.get_i());
  System.out.println(class2.get_i());
 }
}

输出结果:

0

9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值