Java学习笔记17. 静态方法和非静态方法
2018-02-25 14:15
190 查看
与字段相似,方法也可以分为静态和非静态。
静态方法可以访问静态字段,也可以访问静态方法。但是静态方法不能直接访问非静态方法,必须通过对象的实例进行访问。
相反,非静态方法在访问时没有限制,既可以访问静态的,也可以访问非静态的。
其实,只要想想原理就能明白。对象直接要进行互动就必须先具备形体,而创建对象,或者使用静态修饰符修饰,就是创建形体。举个例子:public class demoStaticMethod{
private int a = 10; //非静态字段
private static int b = 20; //静态字段
public static void main(String[] args){
sayHello();
sayHi(); //这里会报错,因为静态方法main不能直接访问非静态方法 sayHi();
System.out.println(a); //这里会报错,因为静态方法main不能直接使用非静态字段 a
System.out.println(b);
demoStaticMethod dSM = new demoStaticMethod();
dSM.sayHi(); //静态访问非静态,必须创建实例进行访问
System.out.println(dSM.a); //通过实例访问非静态字段
}
static void sayHello(){ //静态方法
System.out.println("Say Hello!");
}
void sayHi(){ //非静态方法
System.out.println("Say Hi!");
}
}
静态方法可以访问静态字段,也可以访问静态方法。但是静态方法不能直接访问非静态方法,必须通过对象的实例进行访问。
相反,非静态方法在访问时没有限制,既可以访问静态的,也可以访问非静态的。
其实,只要想想原理就能明白。对象直接要进行互动就必须先具备形体,而创建对象,或者使用静态修饰符修饰,就是创建形体。举个例子:public class demoStaticMethod{
private int a = 10; //非静态字段
private static int b = 20; //静态字段
public static void main(String[] args){
sayHello();
sayHi(); //这里会报错,因为静态方法main不能直接访问非静态方法 sayHi();
System.out.println(a); //这里会报错,因为静态方法main不能直接使用非静态字段 a
System.out.println(b);
demoStaticMethod dSM = new demoStaticMethod();
dSM.sayHi(); //静态访问非静态,必须创建实例进行访问
System.out.println(dSM.a); //通过实例访问非静态字段
}
static void sayHello(){ //静态方法
System.out.println("Say Hello!");
}
void sayHi(){ //非静态方法
System.out.println("Say Hi!");
}
}
相关文章推荐
- Effective Java 学习笔记 使用静态工厂方法代替构造器
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- JAVA基础学习笔记:有趣的静态方法
- Java学习笔记1:考虑用静态工厂方法代替构造器
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
- JAVA封装学习笔记1--静态方法导入--其他
- Java学习笔记1:考虑用静态工厂方法代替构造器
- Java8学习笔记 — 其它新特性【接口默认方法(静态方法)、重复注解、类型注解】
- Java学习笔记1:考虑用静态工厂方法代替构造器
- Java学习笔记——static关键字与静态的使用方法
- java学习笔记4--java 静态方法和实例方法的区别
- Java学习笔记之类中的静态代码及为什么静态不能访问非静态
- Java学习笔记-问问题?-->静态方法
- Java学习笔记【静态域与静态方法】
- JNI学习笔记3——本地方法取得Java属性/调用java方法
- [Java学习笔记] 猜猜看(2) ~ 中断循环语句的一种方法(能够中断所有进行中的循环)
- 静态学习笔记StaticDemo.java
- Ext学习笔记01 - NameSpace,类实例属性,类实例方法,类静态方法
- Java学习笔记---7.面向对象编程02-类的封装性以及构造方法
- thinking in java学习笔记1——全面解读方法重载