java静态方法是什么


在java中,静态方法指被static修饰的成员方法。静态方法不需要通过它所属的类的任何实例就可以被调用,因此在静态方法中不能使用this关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。

  

 

 

 本教程操作环境:windows7系统、java8版、DELL G3电脑。

静态方法(或称为类方法),指被 static 修饰的成员方法。

静态方法与实例方法的区别:

静态方法不需要通过它所属的类的任何实例就可以被调用,因此在静态方法中不能使用 this 关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。另外,和 this 关键字一样,super 关键字也与类的特定实例相关,所以在静态方法中也不能使用 super 关键字。

在实例方法中可以直接访问所属类的静态变量、静态方法、实例变量和实例方法。

示例:

创建一个带静态变量的类,添加几个静态方法对静态变量的值进行修改,然后在 main( ) 方法中调用静态方法并输出结果。

 1 public class StaticMethod {
 2 
 3     public static int count = 1;    // 定义静态变量count
 4 
 5     public int method1() {   
 6 
 7         // 实例方法method1
 8 
 9         count++;    // 访问静态变量count并赋值
10 
11         System.out.println("在静态方法 method1()中的 count="+count);    // 打印count
12 
13         return count;
14 
15     }
16 
17     public static int method2() {   
18 
19         // 静态方法method2
20 
21         count += count;    // 访问静态变量count并赋值
22 
23         System.out.println("在静态方法 method2()中的 count="+count);    // 打印count
24 
25         return count;
26 
27     }
28 
29     public static void PrintCount() {   
30 
31         // 静态方法PrintCount
32 
33         count += 2;
34 
35         System.out.println("在静态方法 PrintCount()中的 count="+count);    // 打印count
36 
37     }
38 
39     public static void main(String[] args) {
40 
41         StaticMethod sft = new StaticMethod();
42 
43         // 通过实例对象调用实例方法
44 
45         System.out.println("method1() 方法返回值 intro1="+sft.method1());
46 
47         // 直接调用静态方法
48 
49         System.out.println("method2() 方法返回值 intro1="+method2());
50 
51         // 通过类名调用静态方法,打印 count
52 
53         StaticMethod.PrintCount();
54 
55     }
56 
57 }

运行该程序后的结果如下所示:1 在静态方法 method1()中的 count=2

2 
3 method1() 方法返回值 intro1=2
4 
5 在静态方法 method2()中的 count=4
6 
7 method2() 方法返回值 intro1=4
8 
9 在静态方法 PrintCount()中的 count=6

在该程序中,静态变量 count 作为实例之间的共享数据,因此在不同的方法中调用 count,值是不一样的。从该程序中可以看出,在静态方法 method1() 和 PrintCount() 中是不可以调用非静态方法 method1() 的,而在 method1() 方法中可以调用静态方法 method2() 和 PrintCount()。

在访问非静态方法时,需要通过实例对象来访问,而在访问静态方法时,可以直接访问,也可以通过类名来访问,还可以通过实例化对象来访问。(拼多多培训

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM