- 相關推薦
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++;
System.out.println("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七寶
135***8724@qq.com
參考地址5個月前 (03-09)
大白小愛
362***275@qq.com靜態變量是用來聲明規則的,一旦固定都是用用來引用的,類似社會中的法律,規定好后你只能拿來說。但是也可以改的,通過重新的聲明法律就行。
大白小愛 大白小愛
362***275@qq.com5個月前 (03-25)
stinkaroo
190***276@qq.comjava 實例變量在整個類內部是可訪問的,而不管實例變量聲明在類的哪個位置。
import java.io.*;
public class Employee{
public Employee (String empName){
name = empName;
}
public void setSalary(double empSal){
salary = empSal;
}
public void printEmp(){
System.out.println("name:" + name);
System.out.println("salary:" + salary);
}
public static void main(String args[]){
Employee empOne = new Employee("RUNOOB");
empOne.setSalary(1000);
empOne.printEmp();
System.out.println(empOne.salary);
}
public String name;
private double salary;
}
比如在上面代碼中,盡管實例變量聲明在類的尾部,在之前方法中仍可訪問。
stinkaroo stinkaroo
190***276@qq.com3個月前 (05-09)
九仞
528***187@qq.com類變量賦值方法
無final修飾,聲明時賦值,構造器中賦值,靜態語句塊或靜態方法賦值
有final修飾,聲明時賦值,聲明與賦值分開可在靜態語句塊中賦值
public class StaticTest {
private static int staticInt = 2;
private int random = 2;
public StaticTest() {
staticInt++;
random++;
}
public static void main(String[] args) {
System.out.println("類變量與對象變量的值變化");
StaticTest test = new StaticTest();
System.out.println(" 實例1:staticInt:" + test.staticInt + "----random:" + test.random);
StaticTest test2 = new StaticTest();
System.out.println(" 實例2:staticInt:" + test.staticInt + "----random:" + test.random);
System.out.println("靜態變量賦值");
System.out.println(" 靜態語句塊起作用:" + A.staticA);
A a = new A();
System.out.println(" 構造器起作用:" + a.staticA);
a.toChange();
System.out.println(" 靜態方法1起作用:" + A.staticA);
a.toChange2();
System.out.println(" 靜態方法2起作用:" + A.staticA);
System.out.println("常量賦值");
System.out.println(" 靜態語句賦值:" + B.staticB);
}
}
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"; }
}
九仞 九仞
528***187@qq.com2個月前 (06-14)
Smiley
448***628@qq.com類變量與實例變量的區別
類變量可在類中直接使用,實例變量需實例化后才能使用。
public class StaticTest {
private static int staticInt = 2;
private int random = 2;
public static void main(String[] args) {
System.out.println(staticInt);
StaticTest test = new StaticTest();
System.out.println(test.random);
【Java 中靜態變量和實例變量區別】相關文章:
JAVA語言中的實例變量06-01
Java常量和變量06-17
Java語言中變量和常量之間的區別11-12
php靜態成員變量06-22
Java 變量類型10-01
Java的特殊變量10-12
java變量和常量是什么08-25
理解java和python類變量10-06
Java中靜態綁定和動態綁定的區別08-14