【尚硅谷】第06章:隨堂復習與企業真題(面向對象-基礎)

第06章:隨堂復習與企業真題(面向對象-基礎)


一、隨堂復習

1. (了解)面向過程 vs 面向對象

  • 不管是面向過程、面向對象,都是程序設計的思路。
  • 面向過程:以函數為基本單位,適合解決簡單問題。比如:開車
  • 面向對象:以類為基本單位,適合解決復雜問題。比如:造車

2. 類、對象

  • 類:抽象的,概念上的定義
  • 對象:具體的,類的一個一個的實例。
  • 面向對象完成具體功能的操作的三步流程(非常重要)
步驟1:創建類,并設計類的內部成員(屬性、方法)
步驟2:創建類的對象。比如:Phone p1 = new Phone();
步驟3:通過對象,調用其內部聲明的屬性或方法,完成相關的功能
  • 對象的內存解析
    • 創建類的一個對象;創建類的多個對象;方法的調用的內存解析
  • Java中內存結構的劃分
    • Java中內存結構劃分為:虛擬機棧、堆、方法區;程序計數器、本地方法棧
    • 虛擬機棧:以棧幀為基本單位,有入棧和出棧操作;每個棧幀入棧操作對應一個方法的執行;方法內的局部變量會存儲在棧幀中。
    • 堆空間:new 出來的結構(數組、對象):① 數組,數組的元素在堆中 ② 對象的成員變量在堆中。
    • 方法區:加載的類的模板結構。

3. 類的成員之一:屬性(或成員變量)

  • 屬性 vs 局部變量
    在這里插入圖片描述

  • 屬性 <=> 成員變量 <=>field <=> 字段、域

4. 類的成員之二:方法

  • 方法的聲明:權限修飾符 返回值類型 方法名(形參列表){ // 方法體}
    • 重點:返回值類型、形參列表
  • return關鍵字的使用

5. 再談方法

5.1 方法的重載(overload)
  • 方法的重載的要求:“兩同一不同”(同樣的類中,同樣的名字,不同的形參)
  • 調用方法時,如何確定調用的是某個指定的方法呢?① 方法名 ② 形參列表
5.2 可變個數形參的方法
  • 格式:(int … args)
5.3 方法的參數傳遞機制:值傳遞(重點、難點)
> 如果形參是基本數據類型的變量,則將實參保存的數據值賦給形參。
> 如果形參是引用數據類型的變量,則將實參保存的地址值賦給形參。
5.4 遞歸方法
  • 遞歸方法構成了隱式的循環
  • 對比:相較于循環結構,遞歸方法效率稍低,內存占用偏高。

6. 對象數組

  • String[] ;Person[] ; Customer[]
    數組元素類型是類類型

7. package、import關鍵字的使用

  • package:指明聲明的類所屬的包。
  • import:當前類中,如果使用其它包下的類(除java.lang包),原則上就需要導入。

8. oop的特征之一:封裝性(問的還挺多)

Java規定了4種權限修飾,分別是:private、缺省、protected、public。
我們可以使用4種權限修飾來修飾類及類的內部成員。當這些成員被調用時,體現可見性的大小。

舉例:

> 場景1:私有化(private)類的屬性,提供公共(public)的get和set方法,對此屬性進行獲取或修改
> 場景2:將類中不需要對外暴露的方法,設置為private
> 場景3:單例模式中構造器private的了,避免在類的外部創建實例。(放到static關鍵字后講)

上理論:程序設計的原則之一

理論上:-`高內聚`:類的內部數據操作細節自己完成,不允許外部干涉;(Java程序通常以類的形態呈現,相關的功能封裝到方法中。)-`低耦合`:僅暴露少量的方法給外部使用,盡量方便外部調用。(給相關的類、方法設置權限,把該隱藏的隱藏起來,該暴露的暴露出去)

9. 類的成員之三:構造器

  • 如何定義:權限修飾符 類名(形參列表){}
  • 構造器的作用:① 搭配上new,用來創建對象 ② 初始化對象的成員變量
   public Account(int i, double b, double a){id = i;balance = b;annualInterestRate = a;}//使用:new對象,初始化
Account a = new Account(1000, 2000, 0.0123);

10. 三個小知識

10.1 類的實例變量的賦值過程(重要)
1. 在類的屬性中,可以有哪些位置給屬性賦值?
① 默認初始化;
② 顯式初始化;
③ 構造器中初始化;
**********************************
④ 通過"對象.方法"的方式賦值;
⑤ 通過"對象.屬性"的方式賦值;2. 這些位置執行的先后順序是怎樣?
① - ② - ③ - ④/⑤
10.2 JavaBean
所謂JavaBean,是指符合如下標準的Java類:- 類是公共的
- 有一個無參的公共的構造器
- 有屬性,且有對應的get、set方法
10.3 UML類圖

熟悉。

二、企業真題

2.1 類與對象

1. 面向對象,面向過程的理解?(平*金服、英**達)

略。

2. Java 的引用類型有哪幾種(阿*校招)

類、數組、接口;枚舉、注解、記錄

3. 類和對象的區別(凡*科技、上*銀行)

略。

4. 面向對象,你解釋一下,項目中哪些地方用到面向對象?(燕*金融)

“萬事萬物皆對象”。

2.2 Java內存結構

1. Java虛擬機中內存劃分為哪些區域,詳細介紹一下(神**岳、數*互融)

略。

2. 對象存在Java內存的哪塊區域里面?(阿*)

堆空間。
不能放在棧空間。

2.3 權限修飾符(封裝性)

1. private 、缺省、protected、public的表格化作用區域(愛*信、拓*思、中*瑞飛)

2. main方法的public能不能換成private?為什么?(凡*科技、順*)

能。但是改以后就不能作為程序的入口了,就只是一個普通的方法。

2.4 構造器

1. 構造方法和普通方法的區別(凡*科技、軟*動力、中*軟)

編寫代碼的角度:沒有共同點。聲明格式、作用都不同。

字節碼文件的角度:構造器會以<init>()方法的形態呈現,用以初始化對象。

2. 構造器Constructor是否可被overload?(鴻*網絡)

可以。

3. 無參構造器和有參構造器的的作用和應用(北京楚*龍)

略。
就是初始化的問題。

2.5 屬性及屬性賦值順序

1. 成員變量與局部變量的區別(艾*軟件)

6個點。

2. 變量賦值和構造方法加載的優先級問題(凡*科技、博*軟件)

變量顯式賦值先于構造器中的賦值。

如何證明?我看的字節碼文件。

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

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

相關文章

解決ElementUI時間選擇器回顯出現Wed..2013..中國標準時間.

使用餓了么組件 時間日期選擇框回顯到頁面為啥是這樣的&#xff1f; 為什么再時間框中選擇日期&#xff0c;回顯頁面出現了這種英文格式呢&#xff1f;&#xff1f;&#xff1f;&#xff1f; 其實這個問題直接使用elementui的內置屬性就能解決 DateTimePicker 日期時間選擇…

程序員指南六:數據平面開發套件

PORT HOTPLUG FRAMEWORK 端口熱插拔框架為DPDK應用程序提供在運行時附加和分離端口的能力。由于該框架依賴于PMD實現&#xff0c;PMD無法處理的端口超出了該框架的范圍。此外&#xff0c;在從DPDK應用程序分離端口后&#xff0c;該框架不提供從系統中移除設備的方法。對于由物…

微信開發:API接口與ipad協議的深度比較及最佳選擇

微信開發&#xff1a;API接口與ipad協議的深度比較及最佳選擇 在深入探索微信開發的過程中&#xff0c;理解不同API接口和協議的特點以及他們的適用場景是非常重要的。本文將詳細對比幾種主流的微信API接口和協議&#xff0c;包括Web版微信協議、iPad協議、PC微信協議/Mac協議…

opencv-圖像梯度

目標 ? 圖像梯度&#xff0c;圖像邊界等 ? 使用到的函數有&#xff1a;cv2.Sobel()&#xff0c;cv2.Schar()&#xff0c;cv2.Laplacian() 等 原理 梯度簡單來說就是求導。 OpenCV 提供了三種不同的梯度濾波器&#xff0c;或者說高通濾波器&#xff1a;Sobel&#xff0c;Schar…

萬界星空科技QMS質量管理系統介紹

QMS&#xff08;Quality Management System&#xff09;質量管理系統是五大基礎系統之一&#xff0c;在工業企業中被廣泛的應用&#xff0c;在質量策劃、生產過程質量監督、體系審核和文檔管理等業務上發揮著不可替代的作用。 一般制造業工廠現狀&#xff1a;質量成本高&#x…

使用 COPY 加速 PostgreSQL 批量插入

文章目錄 1.copy命令介紹2.copy vs insert的優勢3.測量性能4.結論 1.copy命令介紹 PostgreSQL 中的命令COPY是執行批量插入和數據遷移的強大工具。它允許快速有效地將大量數據插入表中。 COPY命令為批量插入和數據遷移提供了更簡單且更具成本效益的解決方案。 可以避免使用諸…

基于SSM的課程資源管理系統

末尾獲取源碼 開發語言&#xff1a;Java Java開發工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技術開發 數據庫&#xff1a;MySQL5.7和Navicat管理工具結合 服務器&#xff1a;Tomcat8.5 開發軟件&#xff1a;IDEA / Eclipse 是否Maven項目&#x…

電力感知邊緣計算網關產品設計方案-網關系統通信架構方案

1.邊緣協同控制模發 能針對建筑、充電樁、分布式儲能、分布式光伏等典型設備建立對應物模型、完成數據采集通信協議設計和控制指令交互設計,能針對建筑、充換電站等典型場景提出具體實施方案和人工智能控制算法和邏輯。物模型、通信協議設計和控制指令交互設計科學、先進,能…

聚類系列(一)——什么是聚類?

目前在做聚類方面的科研工作, 看了很多相關的論文, 也做了一些工作, 于是想出個聚類系列記錄一下, 主要包括聚類的概念和相關定義、現有常用聚類算法、聚類相似性度量指標、聚類評價指標、 聚類的應用場景以及共享一些聚類的開源代碼 下面正式進入該系列的第一個部分&#xff…

webpack打包三方庫直接在html里面使用

場景&#xff1a;我是小程序中使用wxmp-rsa庫進行加密&#xff0c;然后在html里面解密 我就想把wxmp-rsa庫打包到一個js里面&#xff0c;然后在html里面直接引入使用。 webpack配置 const path require("path"); const MiniCssExtractPlugin require("mini-…

【MybatisPlus】簡介與使用

MyBatisPlus 1.簡介 MyBatisPlus&#xff08;簡稱MP&#xff09;是一個MyBatis的增強工具&#xff0c;在MyBatis的基礎上只做增強不做改變&#xff0c;為簡化開發、提高效率而生 官網&#xff1a;https://baomidou.com/ MyBatis-Plus特性&#xff1a; 無侵入&#xff1a;只…

C_1練習題

一、單項選擇題(本大題共20小題,每小題2分,共40分。在每小題給出的四個備選項中,選出一個正確的答案&#xff0c;并將所選項前的字母填寫在答題紙的相應位置上。) 若 x 為int 型變量,則執行以下語句后,x的值為(&#xff09; x5; xx*x; A. 25 B.-20 C. 20 D.-25 若x、i、j、k都…

C#學習相關系列之Linq用法---group和join相關用法(三)

一、Group用法 在C#的LINQ中&#xff0c;Grou將集合中的元素按照指定的鍵進行分組。Group方法返回一個IEnumerable<IGrouping<TKey, TElement>>類型的集合&#xff0c;其中TKey表示分組的鍵類型&#xff0c;TElement表示集合中元素的類型。每個IGrouping<TKey, …

php如何實現文件上傳

php實現文件上傳需要通過全局變量&#xff08;數組&#xff09;&#xff1a;$_FILES 結合 move_uploaded_file 函數來實現。 move_uploaded_file函數&#xff08;只對POST方式生效&#xff09;&#xff1a; 其中move_uploaded_file函數語法&#xff1a;move_uploaded_file(需要…

Vue生成二維碼并進行二維碼圖片下載

1、安包 npm install vue-qr --save2、引入 // vue2.0 import VueQr from vue-qr // vue3.0 import VueQr from vue-qr/src/packages/vue-qr.vue new Vue({components: {VueQr} })<!-- 設備二維碼 對話框 270px--><el-dialog title"點位二維碼" :visible.…

超級簽名封號掉簽該怎么辦

如果超級簽名封號掉簽了&#xff0c;可以考慮以下幾種解決方法&#xff1a; 聯系簽名服務商&#xff1a;首先&#xff0c;可以聯系簽名服務商&#xff0c;了解封號的原因和解決方案。app封裝打包可能會提供技術支持或幫助恢復簽名。 檢查簽名配置&#xff1a;確認簽名配置是否…

練習題——【學習補檔】庫函數的模擬實現

各種庫函數的模擬實現 一、模擬實現strlen1.地址-地址型2.遞歸型3.計數器型 二、模擬實現strcpy三、模擬實現strcmp四、模擬實現strcat五、模擬實現strstr 一、模擬實現strlen 模擬實現strlen有三種方法 1.地址-地址型 2.遞歸型 3.計數器型1.地址-地址型 // //1.地址-地址型 …

云服務器-從零搭建前后端服務

使用須知 選擇0M帶寬不能訪問公網&#xff08;不分配公網IP&#xff09;&#xff0c;如需分配公網IP請增加帶寬值。云服務器ECS默認不開啟虛擬內存如您需要使用請登錄云服務器內部操作。Linux開啟swap&#xff08;虛擬內存&#xff09;、Windows虛擬內存的設置若您購買了數據盤…

含分布式電源的配電網可靠性評估matlab程序

微?關注“電氣仔推送”獲得資料&#xff08;專享優惠&#xff09; 參考文獻&#xff1a; 基于仿射最小路法的含分布式電源配電網可靠性分析——熊小萍 主要內容&#xff1a; 通過概率模型和時序模型分別進行建模&#xff0c;實現基于概率模型最小路法的含分布式電源配電網…

web需求記錄

需求1&#xff1a;根據后端傳過來的設備名:DESKTOP-4DQRGQB&#xff0c;以及mac:e0:be:03:74:40:0b&#xff1b;iQOO-8&#xff0c;mac:b0:33:66:38:c3:25&#xff0c;用web option 是動態增加的&#xff08;也就是那個選擇框里面的東西是根據后端傳過來的值動態增加的&#xf…