为什么静态方法无法直接调用非静态成员变量和方法
靜態(tài)方法無(wú)法直接調(diào)用非靜態(tài)成員變量和方法 看到這句話,要想到形容的是這樣的如下
靜態(tài)方法里面無(wú)法調(diào)用非靜態(tài)變量
下面在寫一個(gè)對(duì)比非靜態(tài)的方法和靜態(tài)方法調(diào)用變量對(duì)比
問(wèn)題原因
靜態(tài)變量和靜態(tài)的方法是屬于類,不屬于對(duì)象,調(diào)用的時(shí)候不需要實(shí)例化(當(dāng)然如果你非要實(shí)例化之后在調(diào)用也是可以的),
非靜態(tài)的變量和方法是屬于對(duì)象的,調(diào)用的需要先實(shí)例化,這也就是上面圖片中的name報(bào)錯(cuò)的原因,
大家需要注意,無(wú)法直接調(diào)用,并不是無(wú)法使用,我們實(shí)例化對(duì)象之后就可以調(diào)用的.
為了更好的理解,我寫了一個(gè)demo
public class Student {private String name = "張三";private static String sex = "男";public void Name() {System.out.println(name);System.out.println("非靜態(tài)方法Name");}public static void Sex() {System.out.println("靜態(tài)方法sex");}public static void main(String[] args) {//非靜態(tài)變量name調(diào)用Student student = new Student();System.out.println(student.name);// 靜態(tài)變量SexSystem.out.println(sex);// 非靜態(tài)方法調(diào)用student.Name();//靜態(tài)方法調(diào)用Student.Sex();}}
可以看到,靜態(tài)變量可以直接調(diào)用,靜態(tài)方法輸入類的,可以直接通過(guò)類.方法 的方法直接使用
非靜態(tài)的變量在靜態(tài)的方法中需要實(shí)例化對(duì)象,即是Student student = new Student(); 實(shí)例化對(duì)象student 然后通過(guò)對(duì)象調(diào)用方法和變量
?
?
?
總結(jié)
以上是生活随笔為你收集整理的为什么静态方法无法直接调用非静态成员变量和方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 纳豆机多少钱一台
- 下一篇: 求一个好听的女生团队名字!