Java静态成员与实例成员

时间:2023-03-08 18:52:59

Java静态成员与实例成员

  类是一种类型,类中定义的所有成员都归此的对象所有,这些成员成为实例成员;而某些成员想要被所有类的所有对象共享,此时的成员不属于某个对象,而是属于整个类,这些成员成为静态成员。

  实例成员:需要通过对象进行访问和调用

  静态成员(static修饰符修饰):不需要对象可以直接调用

  例如:

 package java学习;

 public class test2 {
     double a;     //a为实例成员
     static double c; //c为类成员(即静态成员)
     public static void main(String[] args) {
         // TODO Auto-generated method stub
         test2 first = new test2();
         //实例化一个对象
         first.a = 0.5;
         first.c = 1.0;
         //通过对象调用
         c = 1.5;
         //直接调用
         System.out.println(first.a);
         System.out.println(first.c);
         System.out.println(c);
     }

 }

  输出结果:

  静态成员c首先通过对象访问赋值为1.0,但是其后又直接调用c赋值1.5,故test.c也为1.5,静态变量分配空间唯一,某个对象的静态变量值改变,所有对象的值都将发声变化。

Java静态成员与实例成员

静态方法(函数)

静态方法不在某个特定的对象上进行操作,故引用this会发生错误;

调用静态方法和静态变量一样不需要通过对象调用;

  静态方法中只能访问静态成员,不可以访问实例成员。
 package java学习;

 public class test2 {
     double a , s;     //a为实例成员
     static double c; //c为类成员(即静态成员)
     static void sum1(double a) {
         double s = a * a;     //静态方法中只能访问静态成员,不可以访问实例成员
         System.out.println(s);
     }
     void sum2(double a) {
         this.a = a;
         c = a;       //实例方法中访问静态成员
         System.out.println(s);
     }
     public static void main(String[] args) {
         // TODO Auto-generated method stub
         test2 first = new test2();
         //实例化一个对象
         first.sum1(0.5);
         sum1(0.6);
         //直接调用函数
         first.sum2(0.8);
     }

 }

  运行结果:

Java静态成员与实例成员