Java 中靜態變量和實例變量區別

來源:文萃谷 1.27W

Java的標準指的是一種作為應用層封裝的標準,使用Java可以調用一些底層的操作。下面是小編分享的Java 中靜態變量和實例變量區別,歡迎大家參考!

Java 中靜態變量和實例變量區別

Java 中靜態變量和實例變量區別

靜態變量屬於類,該類不生產對象,通過類名就可以調用靜態變量。

實例變量屬於該類的對象,必須產生該類對象,才能調用實例變量。

 在程序運行時的.區別:

實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。

靜態變量不屬於某個實例對象,而是屬於類,所以也稱為類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。

總之,實例變量必須創建對象後才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。

例如,對於下面的程序,無論創建多少個實例對象,

永遠都只分配了一個 staticInt 變量,並且每創建一個實例對象,這個 staticInt 就會加 1;但是,每創建一個實例對象,就會分配一個 random,

即可能分配多個 random ,並且每個 random 的值都只自加了1次。

public class StaticTest {

private static int staticInt = 2;

private int random = 2;

public StaticTest() {

staticInt++;

random++;

tln("staticInt = "+staticInt+" random = "+random);

}

public static void main(String[] args) {

StaticTest test = new StaticTest();

StaticTest test2 = new StaticTest();

}

}

執行以上程序,輸出結果為:

staticInt = 3 random = 3

staticInt = 4 random = 3

h七寶 h七寶

參考地址5個月前 (03-09)

大白小愛

靜態變量是用來聲明規則的,一旦固定都是用用來引用的,類似社會中的法律,規定好後你只能拿來説。但是也可以改的,通過重新的聲明法律就行。

大白小愛 大白小愛

5個月前 (03-25)

stinkaroo

ava 實例變量在整個類內部是可訪問的,而不管實例變量聲明在類的哪個位置。

import .*;

public class Employee{

public Employee (String empName){

name = empName;

}

public void setSalary(double empSal){

salary = empSal;

}

public void printEmp(){

tln("name:" + name);

tln("salary:" + salary);

}

public static void main(String args[]){

Employee empOne = new Employee("RUNOOB");

alary(1000);

tEmp();

tln(ry);

}

public String name;

private double salary;

}

比如在上面代碼中,儘管實例變量聲明在類的尾部,在之前方法中仍可訪問。

stinkaroo stinkaroo

3個月前 (05-09)

九仞

類變量賦值方法

無final修飾,聲明時賦值,構造器中賦值,靜態語句塊或靜態方法賦值

有final修飾,聲明時賦值,聲明與賦值分開可在靜態語句塊中賦值

public class StaticTest {

private static int staticInt = 2;

private int random = 2;

public StaticTest() {

staticInt++;

random++;

}

public static void main(String[] args) {

tln("類變量與對象變量的值變化");

StaticTest test = new StaticTest();

tln(" 實例1:staticInt:" + icInt + "----random:" + om);

StaticTest test2 = new StaticTest();

tln(" 實例2:staticInt:" + icInt + "----random:" + om);

tln("靜態變量賦值");

tln(" 靜態語句塊起作用:" + icA);

A a = new A();

tln(" 構造器起作用:" + icA);

ange();

tln(" 靜態方法1起作用:" + icA);

ange2();

tln(" 靜態方法2起作用:" + icA);

tln("常量賦值");

tln(" 靜態語句賦值:" + icB);

}

}

class A {

public static String staticA ="A" ;

//靜態語句塊修改值

static{ staticA ="A1"; }

//構造器修改值

public A (){ staticA ="A2"; }

//靜態方法起作用

public static void toChange(){ staticA ="A3"; }

public static void toChange2(){ staticA ="A4"; }

}

class B {

public static final String staticB ; // 聲明與賦值分離

static{ staticB ="B"; }

}

九仞 九仞

2個月前 (06-14)

Smiley

類變量與實例變量的區別

類變量可在類中直接使用,實例變量需實例化後才能使用。

public class StaticTest {

private static int staticInt = 2;

private int random = 2;

public static void main(String[] args) {

tln(staticInt);

StaticTest test = new StaticTest();

tln(om);

熱門標籤