Java静态方法定义
在java中静态方法是指被static修饰的成员方法就是Java静态方法。
/** *在方法前面加入static */ public static long add(long i, long j) { return i + j; }
与静态变量相似,用static修饰符修饰的方法属于类的静态方法,又称为类方法。
静态方法的实质是属于整个类的方法,而不加static修饰的方法是属于某个具体对象的方法,因此在静态方法中不能使用this关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。
Java静态方法格式
当 static 修饰成员方法时,该方法称为静态方法 ,静态方法在声明中有 static ,可直接使用类名来调用,格式如下:
修饰符 static 返回值类型 方法名 (参数列表){ //执行语句 }
修饰后,代码如下:
public static void hello() { System.out.println("hello world!"); }
Java静态方法调用
静态方法的调用格式:
类名.方法()
调用后,代码如下:
MethodTest01.add(20,60);
静态方法调用的注意事项:
- 静态方法可以直接访问类变量和静态方法。
- 静态方法不能直接访问普通成员变量或成员方法。反之,成员方法可以直接访问类变量或静态方法。
- 静态方法中,不能使用this关键字。
静态方法与实例方法的区别
- 非static的方法是属于某个对象的方法,在创建这个对象时,对象的方法在内存中拥有属于自己的代码段;
- 而static的方法是属于整个类的方法,它在内存中的代码段被所有的对象所拥有,而不被任何一个对象所专有;
- 由于static方法是属于整个类的方法,故不能直接操作和处理属于某个对象的成员,而只能处理整个类的成员,即static方法只能访问static成员变量或调用static成员方法;
- 在静态方法中不能使用this或super关键字,因为this代表调用该方法的对象,但现在静态方法不需要对象来调用;
- 调用静态方法时,可以使用类名称来调用,或使用某一个具体对象名来调用,格式如下:
(1)类名称.静态方法名(); (2)对象名.静态方法名();
Java静态方法举例
import java.util.*; public class TestStatic { public static void main(String[]args){ System.out.println(S.getStatic());//使用类名加前缀访问静态方法 S s=new S(); System.out.println(s.getStatic());//使用实例化对象名访问静态方法 System.out.println(s.get()); } public static class S { private static int a; private int t=0; //静态初始器:由static和{}组成,只在类装载的时候(第一次使用类的时候)执行一次,往往用来初始化静态变量。 static{ a=10; } //静态方法只能访问静态数据成员 public static int getStatic() { return a; } public int getT() { return t; } //非静态方法可以访问静态方法和非静态方法 public int get() { getT(); getStatic(); t=a;//非静态方法可以访问非静态数据成员和静态数据成员 return t; } } }
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》