【從0開始學習Java | 第4篇】類和對象

在這里插入圖片描述

文章目錄

  • 👏類和對象的概念
    • 什么是類?
    • 什么是對象?
  • 🥝構造方法
  • 如何創建一個對象?
  • 🥝對象內存布局
    • 完整應用 - 編寫一個類:人,其具備年齡、性別、姓名等基礎屬性,并實例化一個人員對象
  • 注意事項??
    • 1.定義類有什么需要注意的?
    • 2.成員變量有什么需要注意的?

👏類和對象的概念

什么是類?

類(class)是對一類事務的抽象描述,它定義了這類事物具有共同的屬性(數據)和行為(方法)。
比如:“汽車”可以看作一個類:

  • 屬性:顏色、品牌、排量、價格(這些都是所有汽車都具備的特征)
  • 行為:啟動、加速、剎車、鳴笛(這些都是所有汽車都能執行的操作)
  • 類只規定了事物的特征和能力,本身并不存在實體,在Java中類的定義需要使用class關鍵字,基本結構如下:

    public class 類名 {// 屬性(成員變量)數據類型 屬性名1;數據類型 屬性名2;// 行為(成員方法)返回值類型 方法名1(參數列表) {// 方法體}返回值類型 方法名2(參數列表) {// 方法體}
    }
    

    什么是對象?

    對象(Object)是類的具體實例,是根據類創建的“實體”。如果類是學生,那么 “張三(學號:2023001,年齡:18)” 就是一個對象。
    對象具有唯一的標識(內存地址)、狀態(屬性的具體值)

    一張圖解釋類和對象的關系:
    在這里插入圖片描述
    通過上圖來創建一個簡單的類來理解下Java中類的定義:

    public class Dog {String breed;int size;String colour;int age;void eat() {}void run() {}void sleep(){}void name(){}
    }
    

    一個類可以包含以下類型變量:

    1. 局部變量:在方法、構造方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束后,變量就會自動銷毀。
    2. 成員變量.:成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。
    3. 類變量:類變量也聲明在類中,方法體之外,但必須聲明為 static 類型。

    一個類可以擁有多個方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 類的方法


    🥝構造方法

    ?每個類都有自己的構造方法,如果沒有顯示地為類定義構造方法,Java編譯器將會為該類提供一個默認構造方法
    ?而在創建一個對象的時候,至少要調用一個構造方法。構造方法的名稱必須與類名相同,一個類可以有多個構造方法。
    下面是一個構造方法示例:

    public class Puppy{public Puppy(){}public Puppy(String name){// 這個構造器僅有一個參數:name}
    }
    

    如何創建一個對象?

    對象是根據類創建的。在Java中,使用關鍵字 new 來創建一個新的對象。創建對象需要以下三步:

  • 聲明:聲明一個對象,包括對象名稱和對象類型。
  • 實例化:使用關鍵字 new 來創建一個對象。
  • 初始化:使用 new 創建對象時,會調用構造方法初始化對象。 下面是一個創建對象的例子:
  • public class Puppy{public Puppy(String name){//這個構造器僅有一個參數:nameSystem.out.println("小狗的名字是 : " + name ); }public static void main(String[] args){// 下面的語句將創建一個Puppy對象Puppy myPuppy = new Puppy( "tommy" );}
    }
    

    🥝對象內存布局

    Cat類:

    public class Cat {String name;String color;int age;
    }
    

    圖片左邊為執行的操作,右邊為new的對象在內存中的存在形式:
    在這里插入圖片描述
    說明:age為int類型,屬于基本數據類型,直接存放在所new對象的堆中;而age和color都和數組一樣,屬于常量引用類型,所以new對象后在堆中存放的是對應常量池的地址

    完整應用 - 編寫一個類:人,其具備年齡、性別、姓名等基礎屬性,并實例化一個人員對象

    class Person {int age;String name;String gender;public void sleep() {System.out.println(name + "正在睡覺");}public void show() {System.out.println(name + " " + age + " " + gender);}
    }public class Test {public static void main(String[] args){Person p = new Person();p.name="林七夜";p.age=20;p.gender="男";p.sleep();p.show();}
    }
    

    運行結果:

    林七夜正在睡覺
    林七夜 20 男
    

    注意事項??

    1.定義類有什么需要注意的?

  • 類名首字母建議大寫、英文、有意義,滿足駝峰模式,不能用關鍵字
  • 一個代碼文件中可以定義多個類,但是只能有一個類是public修飾的,public修飾的類名必須是Java文件的文件名稱
  • 2.成員變量有什么需要注意的?

  • 成員變量的完整定義格式是:修飾符 數據類型 變量名稱 = 初始化值 ;
  • 一般無需指定初始化值

  • 如果我的內容對你有幫助,請 點贊 評論 收藏 。創作不易,大家的支持就是我堅持下去的動力!
    在這里插入圖片描述

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

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

相關文章

Synopsys:默認報告精度(report_default_significant_digits變量)

相關閱讀 Synopsyshttps://blog.csdn.net/weixin_45791458/category_12812219.html?spm1001.2014.3001.5482 在使用report_timing之類的報告命令時,可以使用-significant_digits選項指定報告的精度,在不使用該選項的情況下,命令使用由repor…

2025年藍橋杯青少圖形化編程國考真題——擺放玩具

編程實現擺放玩具。(角色非源素材)擺放規則:在方格中擺放玩具,每個方格只能擺放一個,并且如果某個方格中已經擺放了玩具,那么與之上、下、左、右相鄰的四個方格中無法再擺放同種玩具。具體要求1&#xff09…

Android 應用的安裝流程

安裝流程總覽: 用戶觸發安裝->系統驗證APK的合法性->解析APK元數據->檢查權限和存儲空間->復制APK到目標位置->生成應用私有數據->注冊組件到系統->安裝完成 關鍵步驟: 1.用戶觸發安裝:a.通過應用商店b.通過adb命令c.通…

基于 Amazon Bedrock 與 Anthropic Claude 3 智能文檔處理方案:從掃描件提取到數據入庫全流程實踐

基于 Amazon Bedrock 與 Anthropic Claude 3 智能文檔處理方案:從掃描件提取到數據入庫全流程實踐 文章目錄基于 Amazon Bedrock 與 Anthropic Claude 3 智能文檔處理方案:從掃描件提取到數據入庫全流程實踐方案架構前提準備:亞馬遜云科技注冊…

深入淺出設計模式——創建型模式之單例模式 Singleton

文章目錄“天上天下,唯我獨尊”——單例模式單例模式簡介單例模式結構餓漢式懶漢式客戶端示例運行結果單例模式總結構建型模式 Creational Patterns 小結 Summary代碼倉庫“天上天下,唯我獨尊”——單例模式 你能在電腦上調出兩個Windows任務管理器嗎&a…

靜電釋放檢測漏報率↓85%!陌訊多模態融合算法在電子廠ESD防護實戰解析

?摘要?? 基于邊緣計算的靜電釋放(ESD)視覺檢測方案,通過多模態融合技術顯著提升復雜場景魯棒性。實測顯示:在電子元件裝配線上,ESD事件檢測mAP0.5達89.1%,較基線模型提升28.3%。一、行業痛點:ESD檢測的隱形危機根據…

RAL-2025 | “藏寶圖”驅動的具身導航!HAM-Nav:基于手繪地圖引導的機器人導航

作者:Aaron Hao Tan, Angus Fung, Haitong Wang, Goldie Nejat單位:多倫多大學機械與工業工程系論文標題:Mobile Robot Navigation Using Hand-Drawn Maps: A Vision Language Model Approach出版信息:IEEE ROBOTICS ANDAUTOMATI…

Vue.js 與后端技術結合開發指南

Vue.js 作為現代化的前端框架,可以與多種后端技術完美結合,構建全棧應用。下面我將詳細介紹 Vue 可以與哪些后端技術結合開發,并提供可視化示例。Vue 可結合的后端技術概覽主流組合方案對比后端技術適合場景優點缺點學習曲線Node.js全棧JavaS…

邏輯回歸在銀行貸款審批中的應用:參數選擇與實踐

目錄 一、數據背景與預處理 1.數據前五行 2.數據預處理步驟 二、邏輯回歸的正則化參數選擇 1.交叉驗證選擇最優C 2.為什么選擇召回率作為評估指標? 三、參數選擇的核心結論 四、后續優化方向 在銀行貸款審批場景中,準確判斷貸款人是否符合貸款條…

數據結構前篇 - 深入解析數據結構之復雜度

目錄一、數據結構前言1.1 數據結構1.2 算法二、算法效率2.1 復雜度的概念三、時間復雜度3.1 大O的漸進表示法3.2 時間復雜度計算示例3.2.1 示例13.2.2 示例23.2.3 示例33.2.4 示例43.2.5 示例53.2.6 示例63.2.7 示例7四、空間復雜度4.1 空間復雜度計算示例4.1.1 示例14.1.2 示例…

Master Prompt:AI時代的萬能協作引擎

1. Master Prompt:為什么它正在重塑AI協作范式大模型落地的最大痛點不是技術本身,而是人機協作的斷裂。當企業采購了昂貴的AI系統,卻發現輸出內容反復偏離預期,團隊成員抱怨“AI總聽不懂我要什么”,這種場景每天在無數…

《Kubernetes部署篇:基于Kylin V10+ARM架構CPU使用containerd部署K8S 1.33.3容器板集群(一主多從)》

總結:整理不易,如果對你有幫助,可否點贊關注一下? 更多詳細內容請參考:企業級K8s集群運維實戰 一、架構圖 如下圖所示: 二、環境信息 基于x86_64+aarch64架構使用containerd部署K8S 1.33.3集群資源合集(一主多從) 2、部署規劃 主機名 K8S版本 系統版本 CPU架構 內核版…

一次性接收大量上傳圖片,后端優化方式

文章目錄1. 分塊接收與流式處理2. 異步處理3. 內存映射與臨時文件4. 數據庫優化5. 緩存策略6. 壓縮與格式優化7. 限流與并發控制8. 分布式存儲9. 響應優化10. 監控與錯誤處理11. 數據庫連接池優化1. 分塊接收與流式處理 使用流式處理避免將所有圖片加載到內存中: …

二分查找(基礎)

競賽中心 - 藍橋云課 #include <iostream> #include<bits/stdc.h> using namespace std; #define int long long int N; struct NO {int A,B; }a[10001]; bool ok(int V) {for (int i 0; i < N; i){if (a[i].A / V ! a[i].B){return false;}}return true; } …

流式編程學習思路

流式編程學習思路 作為Java初級工程師,想要掌握流式編程并向高級工程師進階,需要從基礎到進階逐步掌握,結合實戰場景深化理解。以下是為你量身定制的學習清單和思路: 一、基礎階段:吃透 Java Stream 核心API 1. 掌握 Stream 的基本概念 什么是 Stream:理解它與集合(Co…

13-14linux三劍客grep,sed,awk

目錄 三劍客支持擴展正則寫法 grep命令 sed命令 sed指定行查找&#xff1a; sed模糊過濾文件內容 sed之刪除&#xff1a; sed之替換&#xff1a; sed追加插入替換&#xff1a; sed后向引用&#xff1a; awk命令 awk按照行查找 awk模糊過濾文件內容 awk取列 awk指…

損失函數和調度器相關類代碼回顧理解 |nn.CrossEntropyLoss\CosineAnnealingLR

目錄 nn.CrossEntropyLoss CosineAnnealingLR nn.CrossEntropyLoss loss_func nn.CrossEntropyLoss(reduction"sum") 定義nn.CrossEntropyLoss交叉熵損失函數&#xff0c;reduction參數設置為"sum"&#xff0c;表示將所有樣本的損失相加。reduction 參…

中國不同類型竹林分布數據

中國竹林分布的主要特點簡介&#xff1a;總體分布格局&#xff1a;核心區域&#xff1a; 主要分布在長江流域及以南的廣大亞熱帶和熱帶地區。北界&#xff1a; 大致以黃河流域為北界&#xff0c;但天然成片竹林在秦嶺-淮河一線以南才比較普遍。人工引種或特殊小環境下&#xff…

Sqlserver備份恢復指南-完整備份恢復

博主會用簡單清晰的方式&#xff0c;帶你系統學習使用T-SQL命令行的方式 給SQL Server 做備份與恢復。我們按照從零開始、逐步深入的路線來講解&#xff01; 完整備份恢復-差異增量備份恢復-事務日志備份恢復 &#x1f538; SQL Server 備份類型&#xff1a;類型說明完整備份&a…

AI 調酒師上崗!接管酒吧吧臺

7月29日&#xff0c;馬老師的 HHB 音樂酒吧在阿里巴巴西溪園區正式開業&#xff0c;開業這天迎來了一位神秘嘉賓“AI 調酒師”&#xff01; 這位 AI 調酒師不僅能根據你的MBTI、今日情緒、星座運勢、江湖花名等為你特調一杯雞尾酒&#xff0c;還能為這杯酒配上故事和詩文。 點…