從零學java筆錄-第42篇第二階段成員變數和局部變數的區別
本節主要內容:
1:成員變數和局部變數的區別(需掌握)
本文是《凱哥陪你學系列之java基礎篇.第二階段 面向對象》中第42篇 基礎第二階段 4 成員變數和局部變數的區別
聲明:本文系凱哥原創。轉載請註明出處。謝謝!
一:成員變數與局部變數
1.1:什麼是成員變數?
Java中最小單位是class(類).所以,如果一個變數(屬性)定義在類中,那麼這個變數(屬性)在類中的任意位置可以使用。是類的一部分。
1.2:什麼是局部變數?
在方法中或是方法參數列表中的變數就是局部變數。因為這個變數只能在該方法中使用。離開該方法就不存在了。
如下圖:
1.3:成員變數和局部變數的區別。
a:在類(對象)中的位置不同
成員變數:在類中方法之外
局部變數:在方法定義中或者是方法聲明上(方法的參數列表中)
如果上圖 say()方法中的兩個局部變數name和gender
b:在內存中的位置不同
先回顧棧和堆的區別。棧中存放的是什麼?堆中存放的是什麼?
成員變數:在堆內存中(成員變數屬於對象的一部分。而對象是在堆內存中的。所以成員變數在堆中)
局部變數:在棧內存中(局部變數屬於方法的一部分,而方法是在棧內存中。還記得彈棧嗎?)
c:生命周期不同
成員變數:隨著對象的創建而存在,隨著對象的消失而消失
局部變數:隨著方法的調用而存在,隨著方法的調用完畢而消失
d:初始值不同
成員變數:有默認初始值的。比如String類型的是null int類型是0等
局部變數:沒有默認初始值,必須定義、賦值之後才可以使用(回憶之前學的變數)
具體如下圖:
需要注意的:
1:局部變數名稱可以和成員變數名稱一樣。
因為在作用域不一樣。所以可以一樣的名稱。
2:在方法使用的時候,採用的是就近原則
什麼意思?如果一個變數成員變數中有這個名字,方法中局部變數也有這個名字
那麼,方法就會採用離自己近的(方法中局部變數的)
如下圖:
3:基本數據類型包含哪些?八的基本類型
byte、short、int、long、float、double、boolean、char
引用數據類型包含哪些?
數組、類、介面、枚舉等
下節預告:《封裝 And private關鍵字》
歡迎關注凱哥公眾號:凱哥Java
相關文章:
從零學java筆錄-第41篇 基礎第二階段 3類的定義及使用
從零學java筆錄-第40篇第二階段面向對象 類與對象的概述
從零學java筆錄-第39篇1 面向對象思想及概述
從零學java筆錄-第38篇小項目練習-學生管理系統升級版
從零學java筆錄-第37完結小項目練習-學生管理系統基礎版
從零學java筆錄-第36篇 java中值傳遞址值傳遞 圖解
※從零學java筆錄-第41篇 基礎第二階段 3類的定義及使用
※從零學java筆錄-第40篇第二階段面向對象 類與對象的概述
※從零學java筆錄-第39篇1 面向對象思想及概述
※從零學java筆錄-第38篇小項目練習-學生管理系統升級版
※從零學java筆錄-第37完結小項目練習-學生管理系統基礎版
TAG:凱哥java |
※Python基礎-變數、字元串、數字
※NBA西部季後賽形勢分析:前三已確定,4-10名皆存變數
※static 成員變數、static 成員函數、類/對象的大小
※Python數據類型、運算符、變數
※nova5系列發布背後的華為變數
※「Python」Chapter1 變數和簡單數據類型
※8 個有力的 Awk 內建變數
※Nginx 日誌和變數
※季後賽首戰狂勝27分,76人或成東部最大變數
※python基礎之變數類型number(math模塊)
※ASP 的變數
※iPhone 11Max浴霸三攝再生變數:相機排列細節曝出
※Perl 變數
※C 的變數
※40歲的陳數,是女演員中的一個「變數」…
※VBScript 變數
※Linux安裝jdk1.8和配置環境變數 原
※單模塊512GB持久內存現身 改變數十年DRAM生態
※WitsView:Q4面板供過於求比例達4.3%全年最高,價格走勢添變數
※MySQL 的變數分類總結