静态变量,常量和方法

    1.为什么要使用静态变量,常量和方法

     通常,在处理问题,会遇到多个不同的类要使用同一变量,常量或方法,然而,同一个常量在不同i的类中创建时系统都会为之分配内存,造成内存浪费,如果能将这些不同类中的变量共享到一个内存中,那就大大减少了内存的使用,而静态变量(关键字 static)就是解决这个问题的。如下图所示:
       

    2.被声明的static的变量,常量和方法被称为静态成员,静态成员属于类所有,区别于个别对象,可以在本类或其他类使用类名“.”运算符调用静态成员。如下代码:

    

 1 public class AnyThing {
 2     static double PI = 3.1415;           //在类中定义静态常量
 3     static int id;                       //在类中定义静态变量
 4     public static void method1(){        //在类中定义静态方法
 5         
 6     }
 7     public void method2(){
 8         System.out.println(AnyThing.PI);  //调用静态常量
 9         System.out.println(AnyThing.id);  //调用静态变量
10         AnyThing.method1();               //调用静态方法
11     }
12 }

     注意:(1) 虽然静态成员可以使用“对象.静态成员”的形式进行调用,但通常不这么使用,这样容易混淆静态成员和非静态成员。

             (2) 在静态方法中不可以使用this关键字。

             (3) 在静态方法中不可以直接调用非静态方法。

             (4) 在Java中规定不能将方法中的局部变量声明为static的。

             (5) 如果在执行类时,希望先执行类的初始化动作,可以使用static定义一个静态区域,例如

1 public class example{
2    static{
3          ...
4    }
5 }

              当这段代码被执行时,首先执行static块中的程序,并且只会执行一次,即在类加载的时候就被执行,之后执行main()方法。并且只是自上而下的顺序执行。

3,实例语句块在构造方法调用之前调用,调用一次构造函数,就调用一次实例语句块,执行顺序自上而下。

4.在java中,静态方法和普通方法的区别:

  

1、在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

2、静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

3、程序的static块只能调用静态方法,不能调用实例的方法。

如果要追溯其区别的根源,可以这样理解:在编译期间静态方法的行为就已经确定,而实例方法只有在运行期间当实例确定之后才能确定。

转载于:https://www.cnblogs.com/xyzyj/p/6125555.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值