[关闭]
@Xc-liu 2018-09-01T13:46:38.000000Z 字数 872 阅读 754

将java类中的方法和变量按instance和static划分

Java class


具体区别

  • instance 变量和方法与具体的类实例以后的对象相关。同一个类的不同实例变量和方法彼此独立。

  • static 变量和方法与具体的类实例化以后的对象无关。同一类的不同实例共用静态变量和方法。

具体的区别还包括:

  1. 两者的存储的物理地址不同
  2. 两者的调用的方式和时机不同。
    instance 变量和方法必须在实例化以后再调用,而静态变量则不需要。
    具体的调用方式:
  1. //instance:
  2. classname classRef=new classname();
  3. classRef.instance_var;
  4. classRef.instance_methond;
  5. //static:
  6. classnmae.static_var;
  7. classname.static_methond;

回想之前调用Java自带Math库中方法的方式:

  1. Math.PI;
  2. Math.sin(9.0);

可以推测,常用库中的方法均为静态方法。

代码示例

  1. //Circ.java
  2. public class Circ{
  3. static final double pi=Math.PI;
  4. double radius;
  5. static int numOfObjects=0;
  6. Circ(double r){
  7. radius=r;
  8. numOfObjects++;
  9. }
  10. static int GetNum(){
  11. return numOfObjects;
  12. }
  13. double GetArea(){
  14. return pi*radius*radius;
  15. }
  16. }
  1. //TestCirc.java
  2. public class TestCirc{
  3. public static void main(String[] args){
  4. System.out.println(Circ.GetNum());
  5. Circ c1=new Circ(2.0);
  6. System.out.println(c1.GetArea());
  7. System.out.println(Circ.GetNum());
  8. }
  9. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注