當前位置:才華齋>計算機>java語言>

Java 中靜態變數和例項變數區別

java語言 閱讀(1.35W)

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);