Java面向對象 一

系列文章目錄

Java面向對象 二-CSDN博客

Java面向對象 三-CSDN博客


目錄

系列文章目錄

前言

一、初步認識面向對象

1.類和對象的簡單理解

2.類的構成

二、類的實例化?

1.對象的創建

2.對象的初始化

三、this引用的作用

四、構造方法

1.構造方法的提供

2.對象的構造

3.構造方法的重載

4.this.()?調用構造方法

五、封裝

1. 面向對象的特征

2. 權限關鍵字?

3. 包的概念

4.封裝的概念和意義

六、static 成員

1. static 修飾成員變量

2. static 修飾成員方法

3. 靜態成員的特性及訪問方式

4.靜態成員變量的初始化

七、代碼塊


前言

java 是一門面向對象的編程語言,本文介紹?java 面向對象編程的基礎內容。


一、初步認識面向對象

1.類和對象的簡單理解

java 是一門面向對象的編程語言(Object Oriented Program,簡稱 OOP)。

對象的產生依賴于類,類可以理解為蓋房子用的圖紙,對象就是根據圖紙建出來的房子。

2.類的構成

類中包含屬性(成員變量/字段)和方法(成員方法);

成員屬性:定義在類內部,方法外部的變量;

成員方法:是寫在類里面的函數,用來表示對象的行為;

二、類的實例化?

1.對象的創建

可以通過 new 關鍵字創建對象,使用類創建對象的過程,就是類的實例化;

2.對象的初始化

可以通過引用訪問對象的屬性和方法:具體是指“對象名.屬性/方法名“的方式來訪問;

默認初始化:對象的屬性在沒有賦值的時候,引用類型的默認值是 null,簡單類型就是 0;

注意:局部變量必須初始化才能調用,對象屬性/成員變量不需要。

三、this引用的作用

this 引用指向當前對象(成員方法運行時,調用該成員方法的對象);

this 只能在成員方法中使用,通過 this 可以訪問對象的成員變量,但靜態的成員變量不支持。

this.() :用于調用當前類中的構造方法,只能在構造方法中使用,并且只能在第一行;

this.屬性:?用于訪問對象的屬性;

this.方法名: 用于訪問對象的方法;

四、構造方法

1.構造方法的提供

當一個類中沒有任何一個構造方法的時候,java 會自動提供一個沒有參數的構造方法;

當一個類中有構造方法,Java 就不會提供構造方法了。

2.對象的構造

完成一個對象的構造分兩步:1,給對象分配空間;2,調用合適的構造方法。

構造方法只負責對對象的成員進行初始化,不負責給對象開辟空間;

3.構造方法的重載

構造方法沒有返回值類型,方法名和類名必須相同,定義不同參數可以構成構造方法的重載;

重載:方法名相同,參數列表不同的多個方法構成方法的重載。

4.this.()?調用構造方法

this.() 可以調用當前類中的其它構造方法,只能在構造方法中使用,并且只能在第一行;

使用 this 調用類中的屬性和普通方法不需要放在第一行。

五、封裝

1. 面向對象的特征

面向對象的三大特征:封裝,繼承,多態;

2. 權限關鍵字?

private: 使用該關鍵字修飾的屬性或者方法,只能在同一包下的同一類中訪問;

default:default 不是權限關鍵字,什么關鍵字都不加就是 default 權限,同一包中的同一類或者不同類可以訪問,也叫做包訪問權限;

protected: 權限擴大到不同包中的子類可以訪問,訪問時需要用到 super 關鍵字;

public: 權限擴大到不同包中的非子類也可以訪問;

3. 包的概念

為了更好得管理類,把多個類收集在一起成為一組,稱為軟件包;

import:可以使用 import 關鍵字將包導入;

包名:通常使用公司的域名,類如 com.baidu.www

常見的包:

java.lang: 系統常用基礎類,由編譯器自動導入;

java.lang.reflect: java 反射變成包;

java.net: 網絡編程開發包;

java.sql:?數據庫開發支持包;

java.util: java 提供的工具程序包,包含?java 集合類,非常重要;

java.io: I/O 編程開發包;

4.封裝的概念和意義

封裝就是對類的成員進行隱藏,通過關鍵字 private, 只對類外提供公開的接口;

封裝的意義是可以隱藏類的實現細節,從而達到安全性;

六、static 成員

1. static 修飾成員變量

static 修飾成員變量:靜態成員變量,也叫做類變量,靜態變量存在于 java 虛擬機內存的方法區;

static 成員變量的生命周期:隨著類加載創建,隨著類卸載銷毀;

2. static 修飾成員方法

static 修飾成員方法:靜態成員方法,也叫做類方法;

3. 靜態成員的特性及訪問方式

靜態成員不屬于某個對象,是所有對象共享的;

訪問方式:通過 “類名.靜態成員名” 這種方式訪問;

4.靜態成員變量的初始化

就地初始化:定義的時候直接賦值,即就地初始化;

靜態代碼塊初始化:使用 static 修飾,靜態代碼塊位于類的里面,方法的外面,在代碼塊中初始化靜態成員變量;

七、代碼塊

實例代碼塊:處于類的里面,方法的外面,用于初始化成員屬性的代碼塊;

靜態代碼塊:用 static 關鍵字修飾的代碼塊,比實例代碼塊更先執行;

執行時機:類加載時,靜態代碼塊就會執行;創建對象時,實例代碼塊才會執行;

執行順序:靜態代碼塊,實例代碼塊,構造方法;

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

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

相關文章

深度學習Y8周:yolov8.yaml文件解讀

🍨 本文為🔗365天深度學習訓練營中的學習記錄博客🍖 原作者:K同學啊 本周任務:根據yolov8n、yolov8s模型的結構輸出,手寫出yolov8l的模型輸出、 文件位置:./ultralytics/cfg/models/v8/yolov8.…

【RocketMQ 生產者和消費者】- 生產者啟動源碼 - MQClientInstance 定時任務(4)

文章目錄 1. 前言2. startScheduledTask 啟動定時任務2.1 fetchNameServerAddr 拉取名稱服務地址2.2 updateTopicRouteInfoFromNameServer 更新 topic 路由信息2.2.1 topic 路由信息2.2.2 updateTopicRouteInfoFromNameServer 獲取 topic2.2.3 updateTopicRouteInfoFromNameSer…

解決Docker容器內yum: not found、apt: not found、apk: command not found等命令找不到問題

Linux有很多發行版,各發行版的包管理工具不一定相同。 Alpine的包管理工具是 apk Debian/Ubuntu的包管理工具是 apt Centos/RHEL的包管理工具是 yum 在安裝軟件之前,需要先查看Docker容器內的Linux是什么發行版,可使用 cat /etc/os-rele…

每日c/c++題 備戰藍橋杯(修理牛棚 Barn Repair)

修理牛棚 Barn Repair 題解 問題背景與挑戰 在一個暴風雨交加的夜晚,Farmer John 的牛棚遭受了嚴重的破壞。屋頂被掀飛,大門也不翼而飛。幸運的是,許多牛正在度假,牛棚并未住滿。然而,為了保護那些還在牛棚里的牛&am…

鴻蒙版Flutter庫torch_light手電筒功能深度適配

鴻蒙版Flutter庫torch_light手電筒功能深度適配:跨平臺開發者的光明之路 本項目作者:kirk/堅果 適配倉庫地址 作者倉庫:https://github.com/svprdga/torch_light# 在數字化浪潮的推動下,跨平臺開發框架如 Flutter 憑借其高效、…

【信息系統項目管理師】一文掌握高項常考題型-項目進度類計算

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 一、進度類計算的基本概念1.1 前導圖法1.2 箭線圖法1.3 時標網絡圖1.4 確定依賴關系1.5 提前量與滯后量1.6 關鍵路徑法1.7 總浮動時間1.8 自由浮動時間1.9 關鍵鏈法1.10 資源優化技術1.11 進度壓縮二、基本公式…

深入了解linux系統—— 操作系統的路徑緩沖與鏈接機制

前言 在之前學習當中,我們了解了被打開的文件是如何管理的;磁盤,以及ext2文件系統是如何存儲文件的。 那我們要打開一個文件,首先要先找到這個文件,操作系統又是如何去查找的呢? 理解操作系統搜索文件 …

Docker Hub倉庫介紹

Docker Hub倉庫全解析:從公共市場到私有化部署指南 一、Docker Hub公共鏡像市場 1.1 核心功能解析 全球最大容器鏡像庫:累計托管超500萬鏡像核心服務矩陣: #mermaid-svg-CAMkhmtSWKEUw7z0 {font-family:"trebuchet ms",verdana,a…

redis使用RDB文件恢復數據

設置存盤間隔為120秒且10個key改變數據自動存盤使用RDB文件恢復數據 IP地址主機名192.168.10.170redis170 [rootredis170 ~]# yum install -y redis [rootredis170 ~]# systemctl start redis步驟一:設置存盤間隔為120秒且10個key改變自動存盤 [rootredis170 ~]#…

SpringBoot多環境配置文件切換

resources下application.yml、application-dev.yml、application-prod.yml多個配置文件。 spring:profiles:active: devspring:profiles:active: prod一般都是通過修改spring.profiles.active值來修改加載不同環境的配置信息,可以把切換的dev/prod放到pom.xml文件來…

Java 并發編程高級技巧:CyclicBarrier、CountDownLatch 和 Semaphore 的高級應用

Java 并發編程高級技巧:CyclicBarrier、CountDownLatch 和 Semaphore 的高級應用 一、引言 在 Java 并發編程中,CyclicBarrier、CountDownLatch 和 Semaphore 是三個常用且強大的并發工具類。它們在多線程場景下能夠幫助我們實現復雜的線程協調與資源控…

【Java多線程】多線程狀態下如何安全使用ArrayList以及哈希表

🔍 開發者資源導航 🔍🏷? 博客主頁: 個人主頁📚 專欄訂閱: JavaEE全棧專欄 多線程安全使用ArrayList 手動加鎖 日常中最常用的方法,使用synchronized進行加鎖,把代碼打包成一份&a…

InnoDB引擎底層解析(二)之InnoDB的Buffer Pool(三)

Buffer Pool 實例 我們上邊說過,Buffer Pool 本質是 InnoDB 向操作系統申請的一塊連續的內存空間,在多線程環境下,訪問 Buffer Pool 中的各種鏈表都需要加鎖處理,在Buffer Pool特別大而且多線程并發訪問特別高的情況下&#xff0…

Netty學習專欄(三):Netty重要組件詳解(Future、ByteBuf、Bootstrap)

文章目錄 前言一、Future & Promise:異步編程的救星1.1 傳統NIO的問題1.2 Netty的解決方案1.3 代碼示例:鏈式異步操作 二、ByteBuf:重新定義數據緩沖區2.1 傳統NIO ByteBuffer的缺陷2.2 Netty ByteBuf的解決方案2.3 代碼示例:…

Vue3逐步拋棄虛擬Dom,React如何抉擇

虛擬DOM:前端界的替死鬼 這玩意兒就是個前端開發的充氣娃娃! 你以為它很牛逼?無非是給真DOM當替死鬼! 每次數據變,虛擬DOM先擱內存里自嗨一頓,diff算法跟便秘似的算半天,最后才敢碰真DOM。 說白…

分布式鎖總結

文章目錄 分布式鎖什么是分布式鎖?分布式鎖的實現方式基于數據庫(mysql)實現基于緩存(redis)多實例并發訪問問題演示項目代碼(使用redis)配置nginx.confjmeter壓測復現問題并發是1,即不產生并發問題并發30測試,產生并發問題(雖然單實例是synchronized&am…

解決自簽名證書HTTPS告警:強制使用SHA-256算法生成證書

解決自簽名證書HTTPS告警:強制使用SHA-256算法生成證書 一、問題場景 在使用OpenSSL生成和配置自簽名證書時,常遇到以下現象: 瀏覽器已正確導入根證書(.pem文件),但訪問HTTPS站點時仍提示不安全連接或證…

線上 Linux 環境 MySQL 磁盤 IO 高負載深度排查與性能優化實戰

目錄 一、線上告警 二、問題診斷 1. 系統層面排查 2. 數據庫層面分析 三、參數調優 1. sync_binlog 參數優化 2. innodb_flush_log_at_trx_commit 參數調整 四、其他優化建議 1. 日志文件位置調整 2. 生產環境核心參數配置模板 3. 突發 IO 高負載應急響應方案 五、…

window 顯示驅動開發-初始化和 DMA 緩沖區創建

若要指示 GPU 支持 GDI 硬件加速,顯示微型端口驅動程序的 DriverEntry 函數實現必須使用指向驅動程序實現的 DxgkDdiRenderKm 函數的指針填充 DRIVER_INITIALIZATION_DATA 結構的 DxgkDdiRenderKm 成員。 DirectX 圖形內核子系統調用 DxgkDdiRenderKm 函數&#xf…

Go語言實戰:使用 excelize 實現多層復雜Excel表頭導出教程

Go 實現支持多層復雜表頭的 Excel 導出工具 目錄 項目介紹依賴說明核心結構設計如何支持多層表頭完整使用示例總結與擴展 項目介紹 在實際業務系統中,Excel 文件導出是一項常見功能,尤其是報表類需求中常見的復雜多級表頭,常規表格組件往…