JAVA平台中的实例成员和类成员

我们有时候需要在类实例出来的对象实现一种共享的资源.比如说记录某个类一共实例了多少个对象.

 

1.类变量

    static修饰符:

    在类中用static修饰符的字段谓之"静态属性"或"类变量".它们与类关联,而不是与对象关联.这样这个类实例出来的对象都共享这个资源.

    实例:

class  A {
	public static int a=0;					//声明一个静态变量a
    	A(){
			a++;							//每个对象生成时,都会调用这个构造器,对a自增
		}
}

public class  StaticVariableDemo {
  public static void main(String[] args){
	System.out.println("创建A的第一个对象前,a="+A.a);
	A a1 = new A();
	System.out.println("创建A的第二个对象前,a="+A.a);
	A a2 = new A();
	System.out.println("创建A的第二个对象后,a="+A.a);
  }
}

[注:]为了标明这是类变量,直接用类的名称来引用,而不必通过生成的对象来引用.

 

2.类方法

    类方法作用和上述的类变量一样.只和类关联,不和对象关联.存在形式如下:

    public static int getNumberOfAutoCars(){

        return numberOfAutoCars;

    }

 实例(对象)方法和类方法对比:

1).实例方法可以直接访问类方法和类变量;
2).类方法不能直接访问实例变量或实例方法.要访问它们必须通过对象引用.类方法不能使用this关键字.因此this是指向当前引用对象.皮之不存,毛之焉附?


3.常量

    JAVA平台要定义一个常量需要结合static和final关键字.如下:

    static final double PI = 3.141592653

    需要注意的是,常量名称习惯了用大写字母.

 

4.综上所述,给出一个综合实例:

public class AutoCar2{
	private String brand;					//表示汽车的品牌
	private float exhaust;					//表示汽车的排汽量
	private int speed;						//表示汽车的速度
	private int id;							//添加一个实例变量,作为对象的ID
	private static int numberOfAutoCars = 0; 	//添加一个类变量,用来统计实例化的AutoCar的对象的数量
	
	public AutoCar2(String brand,float exhaust,int speed){
		this.brand = brand;					//使用构造器参数赋初值
		this.exhaust = exhaust;
		this.speed = speed;
		
		//增加AutoCar对象的数量并赋值给ID
		id = ++numberOfAutoCars;
	}

	public int getID( ){					//获得id属性的方法
		return id;							//返回id属性的值
	}

	public static int getNumberOfAutoCars( ){	//获得AutoCar的对象实例数量的方法
		return numberOfAutoCars;
	}
	
	public String getBrand(){				//获得属性brand的值
		return brand;
	}
	
	public float getExhaust(){				//获得属性exhaust的值
		return exhaust;
	}
	
	public int getSpeed(){					//获得属性speed的值
		return speed;
	}
	
	public void setSpeed(int newSpeed){		//设置属性speed的值
		speed = newSpeed;
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值