Java 學習筆記(基礎篇6)

面向對象基礎

1. 類和對象

(1) 示例:

public class Student {String name = "張三";int age = 23;public void study() {System.out.println("學習 Java");}public void eat() {System.out.println("吃飯");}
}
public class Test {public static void main(String[] args) {Student stu = new Student(); // 創建對象stu.study();  // 使用對象的成員方法stu.eat();    // 使用對象的成員方法}
}

(2) 自動對齊快捷鍵

打開需要格式化的 Java 文件后,按下快捷鍵:

  • Windows/LinuxCtrl + Alt + L

(3) private 關鍵字

作用:private 可以修飾成員(成員變量和成員方法),作用是保護成員不被別的類使用,被private修飾的成員只能在本類中才能訪問。

使用:針對private修飾的成員變量,如果需要被其他類使用,應提供相應的操作。
(1)提供 get 變量名() 方法,用于獲取成員變量的值,方法用public修飾;
(2)提供 set 變量名(參數)方法,用于設置成員變量的值,方法用public修飾。

示例:

public class GirlFriend {private String name;private int age;private String gender;public void setName(String n) {name = n;}public String getName() {return name;}
}

Q1:為什么方法前沒有?static?修飾?

  • 定義static?修飾的成員(變量或方法)屬于類本身,而非類的實例(對象)。
  • setName?和?getName?操作的是對象的非靜態成員變量?name(每個對象的?name?是獨有的),必須通過對象實例調用,因此不能用?static?修飾。

Q2:setter 與 getter 方法的設計邏輯

  • setter 方法(如?setName):
    作用是設置成員變量的值,通常接收參數并賦值,無需返回結果,因此用?void,且無?static(依賴對象實例)。

  • getter 方法(如?getName):
    作用是獲取成員變量的值,需要將值返回給調用者,因此必須指定返回值類型(與成員變量類型一致),且無?static(依賴對象實例)。

Q3:為什么使用 name = n?

  • name?是類中定義的成員變量(屬于對象的屬性),作用域是整個類。
  • n?是方法?setName?的參數變量,作用域僅限于當前方法內部。
    這句代碼的意思是:把外部傳入的參數?n?的值,保存到當前對象的?name?成員變量中。

(4) this 關鍵字

  • 用來解決局部變量與成員變量同名的問題,明確區分兩者。
public class Student {String name;public void setName(String name) {this.name = name;  // 使用 this 關鍵字來區分成員變量和局部變量}
}

2. 構造方法

(1) 定義:構造方法用于初始化對象的成員變量。構造方法的名稱必須與類名相同,且沒有返回值類型。

(2) 注意事項:

① 構造方法的創建:如果沒有定義構造方法,系統將給出一個默認的無參數構造方法;如果定義了構造方法,系統將不再提供默認的構造方法。

②?構造方法的重載:如果自定義了帶參構造方法,還要使用無參數構造方法,就必須再寫一個無參數構造方法。

public class Student {String name;int age;public Student() {  // 無參數構造方法this.name = "默認";this.age = 18;}public Student(String name, int age) {  // 帶參數構造方法this.name = name;this.age = age;}
}

③ 推薦的使用方式:無論是否使用,都手工書寫無參數構造方法。

3. JavaBean 的規范

(1)?類的訪問權限:public 修飾

(2)?成員變量:私有(private)封裝

(3)?訪問方法:提供公共的 getter 和 setter

(4)?構造方法:必須包含無參數構造

4. 成員變量和局部變量

(1)?成員變量:類中方法外的變量。

(2)?局部變量:類中方法中的變量。

(3)?成員變量和局部變量的區別

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

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

相關文章

光學件加工廠倚光科技:陪跑光學未來力量

在光學創新的漫漫長路上,總有一些看似 “不劃算” 的堅持,卻在悄然改寫行業的未來。倚光科技的故事,就始于這樣一種選擇 —— 明知光學打樣利潤微薄,明知上百個項目中能走到量產的寥寥無幾,仍愿意投入全球頂尖的設備與…

RabbitMQ:生產者可靠性(生產者重連、生產者確認)

目錄一、生產者重連二、生產者確認一、生產者重連 當網絡不穩定的時候,利用重試機制可以有效提高消息發送的成功率。不過SpringAMQP提供的重試機制是阻塞式的重試,也就是說多次重試過程中,當前線程是被阻塞的,會影響業務性能。 …

【深度學習新浪潮】空天地數據融合技術在城市三維重建中的應用

空天地數據融合技術在城市三維重建中的應用已取得顯著進展,尤其在提升精度以滿足具身智能機器人仿真訓練需求方面,研究和產品均呈現多樣化發展。以下是關鍵研究進展、產品方案及精度要求的詳細分析: 一、研究進展與技術路徑 1. 多源數據融合的技術突破 時空基準統一:通過…

Selenium自動化測試入門:cookie處理

🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快driver.get_cookies() # 獲得cookie 信息driver.get_cookies(name) # 獲得對應name的cookie信息add_cookie(cookie_dict) # 向cookie 添加會話信息delete_cookie(na…

快解析如何讓遠程訪問更安全?

一、勒索病毒攻擊服務器的途徑很多用戶服務器對外開放,實現外網訪問,擔心服務器被勒索病毒攻擊!勒索病毒攻擊服務器的途徑之一是通過路由器開放的端口進行掃描攻擊,所以盡量不要在服務器的路由器和防火墻中開放端口二、快解析如何…

Linux下編譯ARPACK

本文記錄Linux下編譯ARPACK的流程。 零、環境 操作系統Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、依賴 1.1 安裝oneAPI 參見:Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 二、編譯ARPACK …

芋道RBAC實現介紹

說明:之前寫過一篇博客,介紹如何搭建一個基于角色的權限驗證框架 搭建一個基于角色的權限驗證框架 本文介紹在非常受歡迎的開源框架——芋道中是如何實現 RBAC 的,芋道的部署參考下面這篇文章: 芋道微服務代碼部署 介紹 一般…

Docker部署Jellyfin,沒有公網IP如何使用內網穿透遠程訪問?

Jellyfin是一款完全開源、免費的媒體服務器,可幫助你快速搭建屬于自己的私人流媒體平臺:電影、劇集、音樂、照片統統收納,跨設備隨點隨播。本文將以最簡潔的步驟,演示如何在Docker容器中部署Jellyfin,并通過貝銳花生殼…

Podman:Mysql(使用卷)

下載鏡像hpphcomp:~$ podman pull docker.1ms.run/mysql:latest Trying to pull docker.1ms.run/mysql:latest... Getting image source signatures Copying blob c81e70a25040 done | Copying blob 31f7d8dc4024 done | Copying blob b9916866e45f done | Copying blob …

2025年滲透測試面試題總結-21(題目+回答)

安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 一、文件上傳繞過方式(Top 5) 二、文件包含高危函數(PHP為例&#xff0…

像海綿一樣吸收技術書籍的高效學習方法

像海綿一樣吸收技術書籍的高效學習方法前言六步高效閱讀法步驟1:快速瀏覽章節步驟2:先讀章末測驗步驟3:只讀粗體字步驟4:只讀每段的首句和末句步驟5:通讀整章步驟6:復習與重復高效學習技術書籍的實用技巧1.…

Day60--圖論--94. 城市間貨物運輸 I(卡碼網),95. 城市間貨物運輸 II(卡碼網),96. 城市間貨物運輸 III(卡碼網)

Day60–圖論–94. 城市間貨物運輸 I(卡碼網),95. 城市間貨物運輸 II(卡碼網),96. 城市間貨物運輸 III(卡碼網) 今天是Bellman_ford專場。帶你從普通的Bellman_ford,到隊列…

Jenkins服務器SSH公鑰配置步驟

步驟1. 在Jenkins服務器上生成SSH密鑰在Jenkins服務器上執行以下命令:# 1. 生成SSH密鑰對 ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""# 2. 設置正確的權限 chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub# 3. 查看公鑰內…

數據鏈路層-網絡層-傳輸層

文章目錄深入淺出理解網絡核心:從交換機到TCP/UDP一、數據鏈路層:交換機的"地盤"1. 數據鏈路層的核心功能2. 以太網的發展歷程3. 以太網中的MAC地址4. 以太網幀格式:數據的"快遞包裝"5. 交換機的工作原理:高效…

專題:2025跨境電商市場布局、供應鏈與產業帶賦能報告 |附130+份報告PDF、原數據表匯總下載

原文鏈接:https://tecdat.cn/?p43616 2025年,跨境圈的老板們集體焦慮:美國關稅飆到145%,亞馬遜封號潮卷土重來,而東南亞卻悄悄漲了246%!這不是危言聳聽——66%的美國消費者說,海外貨漲10%就換本…

LINUX 818 shell:random;for for

問題 [rootweb ~]# a$(echo $[$RANDOM%10]) 您在 /var/spool/mail/root 中有郵件 [rootweb ~]# echo $a 3 [rootweb ~]# echo 139$a$a$a$a$a$a$a$a 13933333333 您在 /var/spool/mail/root 中有郵件 [rootweb ~]# echo 139 $a 139 3 [rootweb ~]# echo $a 3 [rootweb ~]# echo …

JavaScript 原型機制詳解:從概念到實戰(附個人學習方法)

原型是 JavaScript 實現繼承與代碼復用的核心機制,也是面試高頻考點。本文結合個人學習經驗、核心概念解析與實戰案例,幫你徹底搞懂原型、prototype、__proto__ 及相關知識點,同時分享高效的學習方法。 一、個人學習方法:高效掌握復雜知識點 復雜概念(如原型)的學習,關…

【人工智能】2025年AI代理失控危機:構建安全壁壘,守護智能未來

還在為高昂的AI開發成本發愁?這本書教你如何在個人電腦上引爆DeepSeek的澎湃算力! 在2025年,AI代理(AI Agents)已成為日常生活和企業運營的核心組成部分,它們能夠自主決策、執行任務并與環境互動。然而,隨著AI代理能力的指數級提升,其安全隱患也日益凸顯,包括數據泄露…

從噪聲到動作:Diffusion Policy 如何改變機器人學習?

從噪聲到動作:Diffusion Policy 如何改變機器人學習? 引言 在機器人手臂操作方面一直存在諸多挑戰。我們熟悉的工業場景中的組裝機械臂,往往依賴于寫死的程序指令進行控制,具有高度規范化與高精度的特點。而當機械臂需要在復雜、…

量子計算和超級計算機將徹底改變技術

我們生活在技術時代,但未來仍有無限可能。近年來,各大企業在量子計算領域持續邁出雖小卻關鍵的步伐 —— 這一技術注定將徹底改變我們所熟知的世界。以下精選的潛在應用場景,將對從交通出行到醫療健康的多個領域產生深遠影響。 在由 “1” 和…