大家好,又见面了,我是你们的朋友全栈君。
一、static 修饰方法 1、与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。调用静态方法可通过类名访问或者对象访问。 例如:
public class StaticMethod {
//使用static关键字修饰静态方法
public static void print(){
System.out.println("i like java");
}
public static void main(String[] args) {
//通过类名调用静态方法
StaticMethod.print();
//通过对象调用静态方
StaticMethod objects = new StaticMethod();
objects.print();
}
}
输出结果:
i like java
i like java
2、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
public class StaticMethod {
//定义非静态变量
String name = "jack";
//定义静态变量
static String age = "23";
//使用static关键字修饰静态方法
public static void print(){
// 静态方法直接调用静态变量
System.out.println("静态方法中访问静态变量age:"+age);
//静态方法中调用非静态变量必须通过该类的实例化对象来调用
StaticMethod objects = new StaticMethod();
System.out.println("静态方法中通过实例化对象调用非静态变量name:"+objects.name);
}
public static void main(String[] args) {
//通过类名调用静态方法
StaticMethod.print();
}
}
输出结果:
静态方法中访问静态变量age:23
静态方法中通过实例化对象调用非静态变量name:jack
3、静态方法中可以直接调用静态方法,但不能调用非静态方法。 如果希望在静态方法中调用非静态方法,可以通过创建类的对象,然后通过对象来访问非静态方法 例如:
public class StaticMethod {
//使用static关键字修饰静态方法
public static void print(){
System.out.println("i like java");
}
public void printOne(){
System.out.println("i like java");
}
public static void show(){
//静态方法中直接调用静态方法,通过类名访问
StaticMethod.print();
//静态方法中调用普通方法,通过实例化对象调用
StaticMethod objects = new StaticMethod();
objects.printOne();
}
public static void main(String[] args) {
//通过类名调用静态方法
StaticMethod.show();
// 直接调用静态方法
print();
// 通过类名访问静态方法
StaticMethod. print();
}
}
输出结果:
i like java
i like java
4、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量(在普通成员方法中,也可以调用非静态方法和静态方法。)
public class StaticMethod {
//定义静态变量
static String age = "23";
//使用static关键字修饰静态方法
public static void print(){
System.out.println("i like java");
}
public void input(){
// 非静态方法直接调用静态变量
System.out.println("普通成员方法直接调用静态变量age:"+age);
// 非及静态方法直接调用静态方法
StaticMethod.print();
}
public static void main(String[] args) {
StaticMethod objects = new StaticMethod();
objects.input();
}
}
输出结果:
普通成员方法直接调用静态变量age:23
i like java
demo地址: http://download.csdn.net/download/qq_18505715/9824367
总结出来就这么一句话 : 类优先对象存在
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160527.html原文链接:https://javaforall.cn