- static静态方法
与静态变量一样,我么也可以使用static修饰方法,称为
静态方法
或
类方法
。其实之前我们一只写的main方法就是静态方法。比如说:
package com.Hello;
public class HelloWorld {
//使用static关键字声明静态方法
public static void print(){
System.out.println("你好啊林允儿");
}
public static void main (String[] args){
//直接使用类名调用静态方法
HelloWorld.print();
//也可以通过对象名调用。当然更推荐使用类名调用的方式
HelloWorld demo = new HelloWorld();
demo.print();
}
}
运行结果为:
你好啊林允儿
你好啊林允儿
需要注意:
1.静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
package com.Hello;
public class HelloWorld {
String name = "林允儿";//非静态变量name
static String hobby = "Limyoona";//静态变量hobby
//在静态方法调用非静态变量
public static void print(){
System.out.println("你好啊"+name+"!");//
在eclipse中显示这行代码有误
,说明不能直接调用非静态变量
System.out.println("嘻嘻"+hobby+"!");//可以直接调用静态变量
}
}
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后动过对象来访问非静态变量,如:
public static void print(){
//创建类的对象
HelloWorld hello = new HelloWorld();
//通过对象来实现在静态方法中调用非静态变量
System.out.println("你好啊"+hello.name+"!");
System.out.println("嘻嘻"+hobby+"!");
}
2.在普通成员方法中,可以直接访问同类的非静态变量和静态变量。
String name = "林允儿";//非静态变量name
static String hobby = "Limyoona";//静态变量hobby
//普通成员方法中,可以直接访问非静态变量和静态变量
public void show(){
System.out.println("你好啊"+name+"!");
System.out.println("嘻嘻"+hobby+"!");
}
3.静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
//普通成员方法
public void show(){
System.out.println("你好林允儿");
}
//静态方法
public static void print(){
System.out.println("Hello limyoona");
}
public static void main(String[] args){
//普通成员方法必须通过对象来调用
HelloWorld hello = new HelloWorld();
hello.show();
//可以直接调用静态方法
print();
}
运行结果:
你好林允儿
Hello limyoona