成員變數和靜態變數的區別
成員變數隨著物件的建立而存在,物件回收就被釋放。
靜態變數隨著類的載入而存在,類消失靜態變數就消失。
呼叫方式不同:
成員變數只能被物件呼叫
靜態變數可以被物件呼叫,還可以被類名呼叫。
別名不同:
成員變數也稱為例項變數。
靜態變數也成為類變數。
資料儲存位置不同:
成員變數儲存在堆記憶體的物件中,所以也叫物件的特有資料。
靜態變數資料儲存在方法區(共享資料區)的靜態去,所以也叫物件的共享資料,
static關鍵字是一個修飾符,用於修飾成員變數和成員函式。
靜態方法只能訪問靜態成員,不可以訪問非靜態成員。
ing為靜態方法載入時,優先於物件存在,所以沒有辦法訪問物件中的成員。
靜態方法中不能使用this,super關鍵字。
因為this代表物件,而靜態在時,有可能沒有物件,所以this無法使用。
相關推薦
成員變數和靜態變數的區別
成員變數和靜態變數的生命週期:成員變數隨著物件的建立而存在,物件回收就被釋放。靜態變數隨著類的載入而存在,類消失靜態變數就消失。呼叫方式不同:成員變數只能被物件呼叫靜態變數可以被物件呼叫,還可以被類名呼叫。別名不同:成員變數也稱為例項變數。靜態變數也成為類變數。資料儲存位置不
JAVA關鍵字Static作用 特點 利弊及建立時機 成員變數和靜態變數 Static修飾成員 修飾方法 修飾塊(靜態快)
(1)Static關鍵字修飾符 可以修飾成員(成員屬性 成員方法)(2)Static修飾成員的特點a 生命週期長 跟類相同b 用Static修飾的變數 所有物件共享c Static修飾變數 可以通過物件(.)點的形式呼叫 還可以通過類名(.)點方法呼叫(3)Static建立時
C/C++自動變數和靜態變數的初始化(這是筆記,不官方)
陣列(向量)類似於標量的初始化方式取決於變數的儲存方式。儲存於自動儲存空間的變數在main函式執行之前已經完成初始化,這個動作是有連結器完成的,不需要程式執行指令去對其進行初始化。而這個初始化的內容不管是陣列還是普通變數初始化值均為0,在程式執行的之前這些內容和程式翻譯出的
JNI獲取並修改Java中類的變數和靜態變數的值
對於JNI的基本使用請移步:Hello JNI 本文主要介紹以下幾個函式的使用: GetObjectClass GetFieldID,GetStaticFieldID Get< Type>Field,GetStatic<
java學習筆記(一)成員變數和區域性變數以及靜態變數的區別
成員變數和區域性變數的區別 成員變數: ①成員變數定義在類中,在整個類中都可以被訪問。 ②成員
C++靜態全域性變數和全域性變數的區別
靜態全域性變數 非靜態全域性變數 儲存方式 靜態儲存 靜態儲存 作用域 定義該變數的原始檔內 所有原始檔 解釋: 共同點:
1.成員變數&全域性變數&區域性變數&靜態變數、常量和方法
原文:https://blog.csdn.net/panpuqin/article/details/75091468 原文:https://blog.csdn.net/bobo_993/article/details/73655765 @interface
Java基礎------成員變數和區域性變數的區別和形參問題
在類中的位置不同 (1)成員變數:類中方法外。 (2)區域性變數:方法內部或者方法宣告上。 在記憶體中的位置不同 (1)成員變數:堆記憶體。 (2)區域性變數:棧記憶體。 生命週期不同 (1)成員變數:隨著物件的存在而存在,隨著物件的消失而消失。 (2)區域性變數:隨
成員變數(例項變數)&區域性變數&靜態變數(類變數)的區別
成員變數(例項變數)&區域性變數&靜態變數(類變數)的區別 成員變數(例項變數)&區域性變數區別: (1)作用域 成員變數:針對整個類有效。 區域性變數:只在某個範圍內有效。(一般指的就是方法,語句體內)(2)儲存位置 成員變數:隨著物件的建立而存在,隨著物件的消失而
C++---類的靜態成員變數和靜態成員函式
class Person { public : Person() { } static int m_Age ; //加入static 就是靜態成員變數,會共享資料; //靜態成員變數,在類內宣告,類外進行初始化; } int Person.m_Age = 0; //類外初始化
C++中靜態成員變數和靜態成員函式的用法
昨天在修改專案函式功能時,在其中一個類中添加了一個靜態成員變數和兩個靜態成員函式,結果在連結時出現一個非常典型的錯誤:“The following symbols referenced in processor “p0” could not be resolve
Java成員變數和區域性變數的區別
成員變數:定義在類裡面 區域性變數:定義在類的方法裡面 主要區別: 1、作用域不一樣,成員變數的作用域在整個類中可見,而區域性變數的作用域僅限於定義他的方法 2、Java會給成員變數初始化,區域性變數要在定義的時候賦值,否則會有警告 3、成員變數跟區域性變數可以同名,區域性變數跟區域性
成員變數和區域性變數的區別&&匿名物件
/* 成員變數與區域性變數的區別: 1.位置的區別: 成員變數是定義在方法之外,類之內的變數。 區域性變數是定義在方法之內的變數。 2.作用上的區別: 成員變數的作用是用於描述一個事物的屬性. 區域性變數的作用就是用於提供一個變數給方法內部去使用而已。
Java學習筆記02--成員變數和區域性變數、建構函式、構造程式碼塊、this關鍵字、static關鍵字、靜態函式
成員變數和區域性變數 自定義的位置區別: 成員變數是定義在方法之外,類之內的變數。 區域性變數是宣告在方法之內的變數。 作用上的區別: 成員變數的作用描述一類事物的屬性。 區域性變數的作用是提供一個變數給方法內部使用的。 生命週期的區別;
Java內部類(3):非靜態內部類為什麼不能有靜態成員變數和靜態方法。
首先要明白以下三點: static型別的屬性和方法,在類載入的時候就會存在於記憶體中。 要想使用某個類的static屬性和方法,那麼這個類必須要載入到虛擬機器- 中。 非靜態內部類並不隨外部類一起載入,只有在例項化外部類之後才會載入。 現在考慮這個情
java 初學 成員變數和區域性變數的區別
作用域不同 區域性變數的作用域僅限於定義它的方法。 成員變數的作用域在整個類內部都是可見的。 初始值不同 java會給成員變數一個初始值。 java不會給區域性變數一個初始值。 定義次數不同 在同一個方法中,不允許同名區域性變數。 在不同方法中,允許同名區域性變數。
關鍵字static的作用是什麼? C++類中的靜態成員變數和靜態成員函式的作用
關鍵字static的作用是什麼? 本題目轉自《面試寶典》 1,函式體內static變數的作用範圍為該函式體,不同於auto變數,該變數的記憶體 只被分配一次,因此其值在下次呼叫時,仍維持上次的值; 2,在模組內的static全域性變數可以被模組內所有的函式訪問,但不能被模
C語言中的靜態變數和普通變數的區別
下面用程式碼說明: 一個可執行程式包括BSS段、資料段、程式碼段(文字段)。 bss segment ,data segment ,code/text segment ①BSS(Block by Start Symbol) :通常指用來存放程式中未初化的全域性變數和靜態變數
類的靜態成員變數和靜態成員函式
1 成員變數的回顧 通過物件名能夠訪問public成員變數。 每個物件的成員變數都是專屬的。 成員變數不能在物件之間共享。 2 新的需求 統計在程式執行期間某個類的物件數目。 保證程式執
MFC C++類中的靜態成員變數和靜態成員函式的作用
資料成員可以分靜態變數、非靜態變數兩種. 靜態成員:靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名+靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員..因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜態的