【Java10】成員變量與局部變量

Java中的變量只有兩種:成員變量和局部變量。

和C++不同,沒有全局變量了。

成員變量,field,我習慣稱之為**”屬性“**(但這些年,因為attribute更適合被叫做屬性,所以漸漸不這么叫了)。

局部變量是在方法中定義的變量。

成員變量

和成員方法類似,成員變量也有兩種:

  • static修飾的變量,也就是類成員變量
  • 沒有static修飾的變量,也就是對象變量(也叫實例變量,早期習慣把對象叫做實例,對象初始化叫實例化)。

和成員方法也是類似的:

  • 類成員變量由類.類變量訪問;
  • 實例變量由實例.實例變量訪問;
  • 也可以由實例來訪問類變量,實例.類變量,但要注意這時實際上訪問的是類變量,對其修改會影響其他實例訪問。
class Person
{public String name;public static int eyeNum;
}public class PersonTest
{public static void main(String[] args){System.out.println(Person.eyeNum); // 第一次調用Person類,該類自動初始化,eyeNum默認值是0// 實例化一個Personvar p = new Person();// 通過引用變量p來訪問這個實例System.out.println(p.name, p.eyeNum); // p.name默認值是null}
}

成員變量不需要顯式初始化,系統會默認在類的準備階段或者在實例化的時候進行默認初始化。默認初始化規則和動態初始化數組元素是一樣的。

局部變量

局部變量有三種定義形式(在三個不同的地方被定義):

  • 形參:定義方法簽名時定義的變量,作用域是整個方法的生命期;
  • 方法局部變量:方法體內部,作用域是從定義的地方生效,方法結束時失效;
  • 代碼塊局部變量:在代碼塊內部定義的局部變量,作用域從定義該變量的地方生效,到該代碼塊結束時失效。

局部變量除形參外,必須顯式初始化,否則不能訪問。

作用域
  • 一個類中不能定義兩個同名的成員變量,即便修飾符不同也不行;
  • Java允許局部變量和成員變量同名。且方法中的局部變量會覆蓋成員變量。如果需要調用被覆蓋的成員變量,需使用this指針(實例變量)或類名.類變量(類變量)

道理是這么個道理,但是真正編程的時候還是別這樣了,徒增煩惱。

public class VariableOverrideTest
{private String name = "王五";private static double price = 78.0;public static void main(String[] args){var price = 65; // 方法中的局部變量覆蓋成員變量System.out.println(price); // 65System.out.println(VariableOverrideTest.price); // 78.0}public void info(){var name = "孫悟空"; // 局部變量覆蓋成員變量System.out.println(name); // 孫悟空System.out.println(this.name); // 王五}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41419.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41419.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41419.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

google 郵件信息收集

主要介紹通過google和fofax對目標進行郵件信息收集 chrome插件 email-whatsapp-extractor link-klipper-extract-all bulk-url-opener-extension email-whatsapp-extractor 使用正則表達式,獲取訪問頁面內所有的email郵箱和whatsapp號碼,以表格的形式導…

el-table封裝點擊列篩選行數據功能,支持篩選,搜索,排序功能

數據少的話&#xff0c;可以前端實現&#xff0c;如果多的話&#xff0c;建議還是請求接口比較合理父組件&#xff1a; <template> <div class"home"> <!-- <img alt"Vue logo" src"../assets/logo.png"> <HelloWorld …

Hilbert編碼 思路和scala 代碼

需求&#xff1a; 使用Hilbert 曲線對遙感影像瓦片數據進行編碼&#xff0c;獲取某個區域的編碼值即可 Hilbert 曲線編碼方式 思路 大致可以對四個方向的數據進行歸類 左下左上右上右下 這個也對應著編碼的順序 思考在不同Hilbert深度&#xff08;階&#xff09;情況下的…

【fastadmin開發實戰】經營數據自動識別錄入

項目場景描述&#xff1a;每日錄入各個門店的員工經營數據&#xff0c;直接從微信復制報數、系統識別錄入。 解決方案&#xff1a;各個門店按照固定的匯報模板進行匯報&#xff08;如福田店有員工1、2、3、4、5號員工&#xff0c;每個員工按模板報數&#xff09; 例如&#xf…

Qt學習:Qt窗口組件以及窗口類型

一、Qt的窗口組件有哪些 Qt是一個跨平臺的C應用程序開發框架&#xff0c;它的窗口組件&#xff0c;也稱為用戶界面元素&#xff0c;為開發者提供了豐富的可視化界面設計選項。在Qt中&#xff0c;窗口組件主要包括&#xff1a; 窗口&#xff08;Window&#xff09;&#xff1a;…

JMH320【親測】【御劍九歌】唯美仙俠手游御劍九歌+WIN學習手工端+視頻教程+開服清檔+運營后臺+授權GM物品充值后臺

資源介紹&#xff1a; 這也是仙夢奇緣的一個游戲 注意&#xff1a;外網14位IP或域名 ———————————————————————————————————– ps后臺介紹: 1區運營后臺&#xff1a;http://ip:9981/admin/admintool/ 2區運營后臺&#xff1a;http://ip…

Day44:LeedCode 188.買賣股票的最佳時機IV 309.最佳買賣股票時機含冷凍期 714.買賣股票的最佳時機含手續費

188. 買賣股票的最佳時機 IV 給你一個整數數組 prices 和一個整數 k &#xff0c;其中 prices[i] 是某支給定的股票在第 i 天的價格。 設計一個算法來計算你所能獲取的最大利潤。你最多可以完成 k 筆交易。也就是說&#xff0c;你最多可以買 k 次&#xff0c;賣 k 次。 注意&…

[深度學習]卷積理解

單通道卷積 看這個的可視化就很好理解了 https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md 多通道卷積 當輸入有多個通道時,卷積核需要擁有相同的通道數. 假設輸入有c個通道,那么卷積核的每個通道分別于相應的輸入數據通道進行卷積,然后將得到的特征圖對…

51單片機STC89C52RC——14.1 直流電機調速

目錄 目的/效果 1&#xff1a;電機轉速同步LED呼吸燈 2 通過獨立按鍵 控制直流電機轉速。 一&#xff0c;STC單片機模塊 二&#xff0c;直流電機 2.1 簡介 2.2 驅動電路 2.2.1 大功率器件直接驅動 2.2.2 H橋驅動 正轉 反轉 2.2.3 ULN2003D 引腳、電路 2.3 PWM&…

智能光伏開發都能用到什么軟件和工具?

隨著全球對可再生能源的日益重視和光伏技術的快速發展&#xff0c;智能光伏開發已成為推動能源轉型的重要力量。在光伏項目的全生命周期中&#xff0c;從設計、建設到運營管理&#xff0c;各種軟件和工具的應用發揮著至關重要的作用。 一、光伏系統設計軟件 1、PVsyst PVsyst…

Linux 端口

什么是虛擬端口 計算機程序之間的通訊&#xff0c;通過IP只能鎖定計算機&#xff0c;但是無法鎖定具體的程序。通過端口可以鎖定計算機上具體的程序&#xff0c;確保程序之間進行溝通。 IP地址相當于小區地址&#xff0c;在小區內可以有許多用戶&#xff08;程序&#xff09;&…

java并發編程 JUC-基礎篇 快速入門

1.進程與線程的概念 &#xff08;1&#xff09;進程 程序有指令與數據組成&#xff0c;指令要運行&#xff0c;數據要讀寫&#xff0c;就必須指令加載到CPU。數據加載到內容&#xff0c;指令運行需要用到磁盤。 當一個程序被運行時&#xff0c;從磁盤加載這個程序的代碼至內…

探索Vue Router:構建高效單頁面應用的指南

引言 Vue Router&#xff0c;作為Vue.js的官方路由管理器&#xff0c;為構建SPA提供了強大的支持 Vue Router 基礎 Vue Router 的基本概念和作用 Vue Router 是一個用于構建單頁面應用的 Vue.js 插件。它允許我們通過定義路由規則來將不同的 URL 映射到不同的組件&#xff…

1023記錄

米哈游二面 自動化測試中自動化驅動的能力&#xff1f; pytest的驅動能力&#xff1a; 1&#xff0c;自動發現測試用例&#xff1a;以"test_"開頭的Python文件、以"Test"開頭的類和以"test_"開頭的函數&#xff0c;將它們識別為測試用例 2&…

植物大戰僵尸融合版最新版1.0下載及安裝教程

《植物大戰僵尸融合版》最新版1.0已經發布&#xff0c;為粉絲們帶來了全新的游戲體驗。這個版本由B站UP主藍飄飄fly精心打造&#xff0c;引入了創新的植物融合玩法&#xff0c;讓玩家可以享受策略和創意的結合。以下是游戲的詳細介紹和安裝指南&#xff1a; 游戲特色介紹 全新…

基于深度學習的圖像背景剔除

在過去幾年的機器學習領域&#xff0c;我一直想打造真正的機器學習產品。 幾個月前&#xff0c;在參加了精彩的 Fast.AI 深度學習課程后&#xff0c;似乎一切皆有可能&#xff0c;我有機會&#xff1a;深度學習技術的進步使許多以前不可能實現的事情成為可能&#xff0c;而且開…

Java--繼承

1.繼承的本質是對某一批類的抽象&#xff0c;從而實現對世界更好的建模 2.extends的意思是“擴展”&#xff0c;子類是父親的擴展 3.Java中只有單繼承&#xff0c;沒有多繼承 4.繼承關系的兩個類&#xff0c;一個為子類&#xff08;派生類&#xff09;&#xff0c;一個為父類…

QML-Grid和OpacityMask

一個格子條&#xff0c;點擊縮短 import QtQuick 2.0 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 //導入 import QtGraphicalEffects 1.12Window {id:windowwidth: 600height: 500color: "white"visible: trueGrid {visible: falseid:gridwidth:405he…

STAR 命令參數解釋

以這個為例子解釋STAR參數含義 STAR 命令參數解釋 STAR \ --outFilterType BySJout \ --runThreadN 8 \ --outFilterMismatchNmax 2 \ --genomeDir <hg19_STARindex> \ --readFilesIn <un_aligned.fastq> \ --outFileNamePrefix <HEK293> \ --outSAMtype B…

歐科云鏈大咖對話:Web3原生創新靜默期,科技巨頭卻在兩極化發展

出品&#xff5c;OKG Research 作者&#xff5c;Hedy Bi 上周末&#xff0c;歐科云鏈研究院接受FT中文的邀請&#xff0c;作為圓桌嘉賓參與了由FT中文網與上海交通大學上海高級金融學院聯合主辦的金融大師課。在圓桌環節&#xff0c;筆者與各位教授和金融行業科技創新前沿實踐…