Java静态成员与实例成员

Java中的静态成员和实例成员具有不同的访问方式和作用范围。静态成员属于类本身,可由类名直接调用,所有对象共享同一静态变量值。实例成员则需要通过对象访问。静态方法不使用this关键字,不能操作实例成员。

Java静态成员与实例成员

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

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

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

  例如:

 1 package java学习;
 2 
 3 public class test2 {
 4     double a;     //a为实例成员
 5     static double c; //c为类成员(即静态成员)
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         test2 first = new test2();
 9         //实例化一个对象
10         first.a = 0.5;
11         first.c = 1.0;
12         //通过对象调用
13         c = 1.5;    
14         //直接调用
15         System.out.println(first.a);
16         System.out.println(first.c);
17         System.out.println(c);
18     }
19 
20 }

  输出结果:

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

静态方法(函数)

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

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

  静态方法中只能访问静态成员,不可以访问实例成员。
 1 package java学习;
 2 
 3 public class test2 {
 4     double a , s;     //a为实例成员
 5     static double c; //c为类成员(即静态成员)
 6     static void sum1(double a) {
 7         double s = a * a;     //静态方法中只能访问静态成员,不可以访问实例成员
 8         System.out.println(s);
 9     }
10     void sum2(double a) {
11         this.a = a;
12         c = a;       //实例方法中访问静态成员
13         System.out.println(s);
14     }
15     public static void main(String[] args) {
16         // TODO Auto-generated method stub
17         test2 first = new test2();
18         //实例化一个对象
19         first.sum1(0.5);
20         sum1(0.6);
21         //直接调用函数
22         first.sum2(0.8);
23     }
24 
25 }

  运行结果:

转载于:https://www.cnblogs.com/ddpapa/p/10642182.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值