定義變量和聲明變量、定義類和聲明類

一、定義變量和聲明變量

在編程中,定義變量和聲明變量是兩個相關但不同的概念,尤其是在靜態類型的編程語言中。靜態類型的編程語言比如Java

1、聲明變量

(1)定義:聲明變量是指告訴編譯器變量的名字、類型和在某些情況下其存在的事實,但不分配內存空間

(2)特點:聲明變量可以出現在代碼的多個位置。特別是在具有作用域的概念的語言中,比如Java

(3)前向聲明:只聲明不定義變量的聲明變量的方式,它允許編譯器知道變量的存在,以便在后面的代碼中正確地引用該變量

(4)舉例:在Java中,非成員變量x,'int x;'則是聲明變量x為整型,但不為該變量分配內存空間和初始化

2、定義變量

(1)定義:定義變量是指不僅聲明變量還為變量分配內存空間(實際創建變量的地方)

(2)特點:

  • 定義變量伴隨著初始化。即使不顯示初始化,比如在定義類中的成員變量時,編譯器也會為變量分配空間,并根據變量類型為其賦予默認值
  • 一個變量在任何作用域內只能被定義一次

(3)舉例:在Java中, 成員變量x,若顯示初始化,‘int x=10;'則是定義變量x為整型,并將變量x的值初始化為10;若不顯示初始化,‘int x;’則是定義變量x為整型,并將變量x的值默認初始化為0

3、小結

(1)聲明變量是告訴編譯器變量的信息,包括名稱、類型、某些事實

(2)定義變量是在聲明變量的基礎上,為變量分配內存并對其進行初始化

(3)定義了變量一定聲明了該變量,但聲明了變量不一定定義了該變量

二、定義類和聲明類

在Java中,不區分“聲明類”和“定義類”的概念,因為這兩個術語在Java的語境下是同義的。

1、定義類和聲明類

(1)“定義”一個類,指的是創建一個類的完整結構,包括訪問權限修飾符、類名、成員變量、構造方法、方法。

(2)因為Java不支持單獨的前向聲明,因此在Java中定義類的這個過程同時完成了聲明類的任務。

(3)一旦編寫了定義類的代碼就定義了這個類的存在同時也聲明了這個類的存在

3、舉例:定義一個類Person

public class Person {int age;public Person() {}public void oper(){}
}

在這個例子中,'Person'類的定義包含了訪問權限修飾符public、類名Person、成員變量age、構造方法Person()、方法oper()這5個必要元素,這個類的定義同時是這個類的聲明,因為它提供了類的全部信息。使得編譯器和Java虛擬機能夠理解和使用這個類

4、小結

在Java中,當我們說“定義一個類”時,通常是指創建了一個包含所有必要元素的完整類結構,這同時也完成了類的聲明

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

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

相關文章

Mysql:時區問題

Mysql:時區問題 1、時區配置 Mysql默認使用系統的時區 mysql> show global variables like %time%zone%; -------------------------- | Variable_name | Value | -------------------------- | system_time_zone | | | time_zone | SYSTEM…

Multi-Wing Optimiser風扇選型軟件介紹

Multi-Wing Optimiser風扇選型軟件

一、YOLO V10安裝、使用、訓練大全

YOLO V10安裝、使用、訓練大全 一、下載官方源碼二、配置conda環境三、安裝YOLOV10依賴四、使用官方YOLO V10模型1.下載模型2.使用模型2.1 圖片案例 五、制作數據集1.數據集目錄結構2.標注工具2.1 安裝標注工具2.2 運行標注工具2.3 設置自動保存2.4 切換yolo模式2.5 開始標注2.…

Socket.D 開源網絡應用協議,v2.5.9 發布(已有 java, py, js SDK)

Socket.D 協議? Socket.D 是一個基于事件和語義消息流的網絡應用協議。在微服務、移動應用、物聯網等場景,可替代 http、websocket 等。協議詳情參考《官網介紹》。 支持: tcp, udp, ws, kcp 傳輸。 目前:java,kotli…

Python不使用元類的ORM實現

不使用元類的簡單ORM實現 在 Python 中,ORM(Object-Relational Mapping)是一種將對象和數據庫之間的映射關系進行轉換的技術,使得通過面向對象的方式來操作數據庫更加方便。通常,我們使用元類(metaclass&a…

關于go和rust語言的對比

文章目錄 前言Rust 的優勢:Go 的優勢:總結 前言 Go 和 Rust 是兩種現代的系統級編程語言,它們各自擁有獨特的特性和應用場景。以下是它們的一些主要區別: Rust 的優勢: 內存安全:Rust 引入了所有權和借用…

香橙派5plus上跑云手機方案二 waydroid

前言 上篇文章香橙派5plus上跑云手機方案一 redroid(帶硬件加速)說了怎么跑帶GPU加速的redroid方案,這篇說下怎么在香橙派下使用Waydroid。 溫馨提示 雖然能運行,但是體驗下來只能用軟件加速,無法使用GPU加速,所有會很卡。而且…

Pat乙級題解

文章目錄 1~2021 ~ 4041~6061~8081~100101~125 1~20 1001 害死人不償命的(3n1)猜想 B1002 寫出這個數 (20 分) B1003 我要通過! B1004 成績排名 1005 繼續(3n1)猜想 B1006 換個格式輸出整數 B1007 素數對猜想 1008 數組元素循環右移問題 B1009 說反話 1010 一元多項…

linux磁盤分區管理

首先關機狀態下,先配置硬盤 硬盤分區管理 識別硬盤 》分區規劃 》 格式化 》 掛載使用 [rootlocalhost ~]# lsblk 查看硬盤 分區劃分(m幫助, p 查看分區, n 創建分區, d 刪除分區, q 退出, w 保存, g gpt分區) [roo…

絕區陸--大語言模型的幻覺問題是如何推動科學創新

介紹 大型語言模型 (LLM)(例如 GPT-4、LLaMA-2、PaLM-2、Claude-2 等)已展示出為各種應用生成類似人類文本的出色能力。然而,LLM 的一個鮮為人知的方面是它們傾向于“產生幻覺”或生成不正確或沒有根據的事實陳述。我不認為這僅僅是一個限制…

快速排序算法Python實現

快速排序原理和步驟 快速排序是一種高效的排序算法,基于分治法(Divide and Conquer)來實現。其基本思想是通過一次排序將數組分成兩部分,其中一部分的所有元素都小于另一部分,然后遞歸地對這兩部分進行排序。以下是快…

前端構建工具(webpackvite)

這里寫目錄標題 構建工具webpack介紹配置文件簡介entryoutputloaderbabel插件開發服務器(webpack-dev-server)soureMap vite 構建工具 當我們習慣了在node中編寫代碼的方式后,在回到前端編寫html、css、js這些東西會感覺到各種的不便。比如:…

夏季戶外綜合征怎么預防

以下是一些預防夏季戶外綜合征的有效方法: 做好防曬措施: 涂抹高倍數的防曬霜,每隔 2 - 3 小時重新涂抹一次。比如選擇 SPF50、PA 的防曬霜。佩戴寬邊帽子、太陽鏡和遮陽傘,減少陽光直射面部和眼睛。像漁夫帽、大檐帽能有效遮擋陽…

12-阿里云單細胞處理-PBMC(by-jmzeng)

scRNA_10X/seurat-v2/sup-patient1-PBMC.Rmd at master jmzeng1314/scRNA_10X (github.com) s04-運行seurat流程處理一萬個單細胞轉錄組數據并自動化出報告_嗶哩嗶哩_bilibili #section 3已更新#「生信技能樹」單細胞公開課2021_嗶哩嗶哩_bilibili 上傳讀取數據 可以配置租…

模擬型題目

題目類型: 給定操作,允許操作任意次 思路收集: 1.暴力遍歷:如Problem - B - Codeforces 直接讓每一個不同的進行操作 2.歸納:根據模擬來發現規律

RTK_ROS_導航(4):ROS中空地圖的生成與加載

1. 地圖加載 構建空白 Map 如下,以下為python代碼,生成了output_image.pgm 文件 一般你在什么地方運行該代碼,這個文件就生成在什么地方 import numpy as np size = 100 # 單位:m resulition = 0.05 # 單位:mw = round(size / resulition) IMAGE_DATA = np.zeros((w

ChatGPT:Swagger 的疑問

ChatGPT:Swagger 的疑問 這段代碼是做什么的,為什么每個微服務的寫法都一樣 springdoc:api-docs:enabled: true # 1. 是否開啟 Swagger 接文檔的元數據path: /v3/api-docsswagger-ui:enabled: true # 2.1 是否開啟 Swagger 文檔的官方 UI 界面path: /sw…

音視頻解封裝demo:使用libmp4v2解封裝(demux)出mp4文件中的h264視頻數據和aac語音數據

1、README 前言 本demo是使用的mp4v2來將mp4文件解封裝得到h264、aac的,目前demo提供的.a靜態庫文件是在x86_64架構的Ubuntu16.04編譯得到的,如果想在其他環境下測試demo,可以自行編譯mp4v2并替換相應的庫文件(libmp4v2.a&#…

HTTP 范圍Range請求

HTTP 的 Range 請求使客戶端能夠要求服務器僅向其回傳 HTTP 消息的一部分 HTTP 的 Range 請求頭是 HTTP/1.1 協議的一個特性。它允許客戶端請求僅傳輸資源的某個特定部分,而不是整個資源。 適用場景 支持隨機訪問的媒體播放器明確只需大型文件某部分的數據處理工具…

2022 RoboCom 世界機器人開發者大賽-高職組(國賽):智能管家

人上了年紀,記性就會變差,時常不得不翻箱倒柜找東西。智能照護中心現在請你做一個簡單的智能管家程序,把老人家里的東西逐一編號,放進若干個收納箱里。當然收納箱也是有編號的,你的程序要記錄下哪個東西放在哪個收納箱…