在實例中說明java的類變量,成員變量和局部變量


 

java中一般有三種變量:類變量,成員變量和局部變量。類變量

1.下面先看類變量,看下面這個例子

public class Demo6{
    public String name;
    public int age;
    public static String sex="男";

    public Demo6(String name, int age){
        this.name = name;
        this.age = age;;
    }

    public void say(){
        System.out.println("我的名字是"+name+",我今年"+age+"歲.");
    }

    public static void main(String args[]){
        Demo6 obj = new Demo6("alex",25);
        obj.say();
        System.out.println("我是"+sex+"生");
//        System.out.println("我今年"+age+"歲");
    }
}

類變量可以無需實例化便可訪問(ps:如果一個實例改掉了類變量的值,其他實例調用此類變量值時也是改動后的)

如果去掉注釋

System.out.println("我今年"+age+"歲");

,則會報錯:Error:(19, 34) java: /Users/lsf/IdeaProjects/JavaPractice/src/Demo6.java:19: 無法從靜態上下文中引用非靜態 變量 age  

2.接下來來看成員變量和局部變量,還是看這個例子,做一點小改動

public class Demo6{
    public String name;
    public int age;
    public static String sex="男";

    public Demo6(String name1, int age){
        this.name = name1;
        this.age = age;;
    }

    public void say(){
        System.out.println("我的名字是"+name+",我今年"+age+"歲.");
//        System.out.println("我的名字是"+name1+",我今年"+age+"歲.");
    }

    public static void main(String args[]){
        Demo6 obj = new Demo6("alex",25);
        obj.say();
        System.out.println("我是"+sex+"生");
    }
}

  當執行下面這句時結果是正確的:

System.out.println("我的名字是"+name+",我今年"+age+"歲.");

這是因為name是成員變量,在整個實例中有效。而name1是局部變量,只在方法體內有效,如果像下面這樣直接調用name1,則會報錯

System.out.println("我的名字是"+name1+",我今年"+age+"歲.");

報錯信息為:

Error:(13, 36) java:找不到符號
符號: 變量 name1
位置: 類 Demo6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM