1. 程式人生 > >Java中靜態變量(類變量)、實例變量、局部變量和成員變量

Java中靜態變量(類變量)、實例變量、局部變量和成員變量

Java

導讀

學習Java的過程中,一開始很容易被這些各種變量繞暈,這篇博客主要介紹了這幾種變量之間的關系和區別。

例程

package com.cunyu.demo

public class Demo {

    private String name;  //成員變量、實例變量
    private int age;  //成員變量、實例變量
    private int ID;  //成員變量、實例變量

    public static final String school = "卡塞爾學院";  //成員變量、靜態變量(類變量)
    public static String level = "SSS";    //成員變量、靜態變量(類變量)

    public int getAge() {
        return age;
    }

    public int getId() {
        return ID;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setId(int ID) {
        this.ID = ID;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void study(){
            String subject1 = "屠龍";  //局部變量
            String subject2 = "煉金術"; //局部變量
            System.out.println("學習科目: " + subject1 + "、" + subject2);
        }

    public static void main(String[] args) {
        Demo demo = new Demo();
        demo.setAge(23);
        demo.setId(14000001);
        demo.setName("楚子航");
        System.out.println("ID: " + demo.getId() + "Age: " + demo.getAge() + "Name: " + demo.getName());
        System.out.print("主修科目: ");
        demo.study();
        System.out.println("學院:" + Demo.school);
        System.out.println("等級:" + Demo.level);
    }
}

各變量聯系與區別

  • 成員變量:作用範圍是整個類,相當於C中的全局變量,定義在方法體和語句塊之外,一般定義在類的聲明之下;成員變量包括實例變量和靜態變量(類變量);
  • 實例變量:獨立於與方法之外的變量,無static修飾,聲明在一個類中,但在方法、構造方法和語句塊之外,數值型變量默認值為0,布爾型默認值為false,引用類型默認值為null;
  • 靜態變量(類變量):獨立於方法之外的變量,用static修飾,默認值與實例變量相似,一個類中只有一份,屬於對象共有,存儲在靜態存儲區,經常被聲明為常量,調用一般是類名.靜態變量名,也可以用對象名.靜態變量名調用;
  • 局部變量:類的方法中的變量,訪問修飾符不能用於局部變量,聲明在方法、構造方法或語句塊中,在棧上分配,無默認值,必須經初始化;

Java中靜態變量(類變量)、實例變量、局部變量和成員變量