暑假復習篇之類與對象

面向對象:①類與對象②封裝③繼承④接口

類與對象:

  • 概念:類就是類別的意思? 用class表示 /? 面向對象編程,萬物皆可編程,在程序中表示一個事物時,往往因為事物的復雜程度導致編程的代碼非常復雜 【基本數據類型,只能實現一個變量用來表示一個數據的情況,當下面這種有多個數據組成的一份數據,使用一個基本數據類型表示時就比較復雜】

比如:一個人、一個用戶、一個學生

人:姓名 年齡 性別 體重 身高 等

用戶:賬號ID 密碼 幾分 電話 地址 郵箱等

學生:姓名 年齡 班級 學分 學號等

????????①復合型數據類型創建的變量——叫做對象變量,對象變量中包含了,按照類模版生成的多個基本數據/其他數據

  • 什么是對象? 對象就是具體的事物、具體存在的。? 程序中 對象指代一個事物在計算機中映射的數據體 存在于內存中
  • 類與對象的關系?

①類就是一個概念性的東西,是一個模版 用于創建對象變量的模版

②對象是一個具體的東西 是代碼執行之后? 在內存中存在的一份數據體

類與對象的語法:

  • 類的定義: 語法: public class 類名{? }
  • 命名要求:推薦【阿里巴巴Java開發手冊】

? ? ? ? ①類名/類文件名:首字母大寫,多個單詞拼接,每個單詞首字母大寫 -> 駝峰命名法

? ? ? ? ②方法名/變量名:首字母小寫,多個單詞拼接,每個首字母大寫 -> 小駝峰命名法

? ? ? ? ③偶爾使用的局部變量:循環中計數等等可以使用字母? ? 或者小寫或者縮寫?

? ? ? ? ④不要使用拼音,使用單詞。

  • 一個類中需要定義什么內容,能變成一個可以符合面向對象編程的復合型數據類型
  • 類就是復合型數據類型,如何規劃一個類別?

? ? ? ? 類別的來源——共性

? ? ? ? 通過分析事物之間是否具有相同的/相似的? 屬性 特征 行為 功能…… 來劃分類別

? ? ? ? 所以我們定義類時,也需要找到 這個類別對應事物都有哪些數據 特征 行為 功能等

? ? ? ? 然后使用代碼將這些內容定義到類中,實現復合型數據類型的組成

  • 學生管理系統

  • 創建對象的格式: 類型 對象變量名 = new? 類名();

????????①學生可以注冊信息

????????②可以查看自己的信息

????????③可以修改自己的信息

????????④可以選課

????????⑤可以在線學習

????????⑥可以在線考試

  1. 首先需要知道系統重應該保存每個學生的哪些信息,需要哪些信息來完成所有 功能? ? ? ? ? ? ? ? 信息: 姓名 學號 學分 年齡 班級 專業 密碼 課程表? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 功能:登錄 查信息 修改信息 選課 學習 考試
  2. 所有一個類的內容包含? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ①屬性:用來表示這個類別對應的事物應該有什么數據信息 通常在代碼使用變量來定義

? ? ? ? ? ? ? ? 格式:屬性的數據類型? 屬性數據變量名;

? ? ? ? ? ? ? ? String name;? int age;

? ? ? ? ②方法:用來表示這個類別具備的行為/功能,一對象為主語的行為,通常使用方法(函數,一段代碼的結構)來表示

? ? ? ? ? ? ? ? 格式:public 返回值類型 方法名(參數){? 方法體? }

? ? ? ? ? ? ? ? - 返回值:方法結構的一部分,具備一定的功能性 用于幫助程序更好的完成一些邏輯

? ? ? ? ? ? ? ? ? ? ? ? - 用于實現在調用方法之后,獲得這個方法得到的結果。

? ? ? ? ? ? ? ? ? ? ? ? - 定義方法時就需要考慮如何設計返回值。思考這個方法需要返回的結果是什么類型,從而定義方法設定返回值類型。

? ? ? ? ? ? ? ? ? ? ? ? - 如果這個方法不需要返回值,返回值類型可以設定為void

? ? ? ? ? ? ? ? ? ? ? ? - 一單設定了具體的返回值類型,在方法任何有可能結束運行的位置 都需要使用return返回響應返回值類型的結果

? ? ? ? ? ? ? ? ? ? ? ? - 在調用方法的位置,可以在方法前面可以創建一個隊形返回值類型的變量,來接收方法先執行完成返回的結果

  • Math 工具類 這個類中所有的方法比較特殊,是靜態方法,可以使用類名調用? ? Math.min是兩數比較得最小值? ?Math.max是兩數比較得最大值

? ? ? ? ? ? ? ? - 參數:方法結構的一部分,相當于方法的局部變量

? ? ? ? ? ? ? ? ? ? ? ? - 在定義方法時,在不知道一些具體的數據時,可以使用參數變量來替代,為了完成代碼的邏輯編寫

? ? ? ? ? ? ? ? ? ? ? ? - 在調用方法時,需要根據定義的參數類型,向方法的括號寫上對應的變數據/或者帶有數據的變量

? ? ? ? ? ? ? ? - 格式:

? ? ? ? ? ? ? ? ①無參數:空著不寫,調用方法時,方法名后面括號也空著

? ? ? ? ? ? ? ? ②有參數:

? ? ? ? ? ? ? ? ? ? ? ? 單個參數:(數據類型 數據變量名)在調用時給的參數數據只要符合參數類型就可以

? ? ? ? ? ? ? ? ? ? ? ? 多個參數:(參數數據類型 參數變量名2,數據類型 參數名1)每個參數名必須不一致,傳入參數時要注意順序


public class Student {//屬性String name;String stuID;String className;int age;int score;public void showInfo(){System.out.println("--學生個人基礎信息--");System.out.println("姓名" + name);System.out.println("學號" + stuID);System.out.println("年齡" + age);System.out.println("班級" + className);System.out.println("成績" + score);}public void study(){score+=5;System.out.println(name + "學習了一門課程,學分增加5分。");}public void play(){System.out.println(name + "正在玩");}//測試//使用類創建對象變量 并使用對象變量名調用屬性和方法public static void main(String[] args) {Student s1 = new Student();s1.name = "張三";s1.stuID = "001";s1.age = 18;s1.className = "1班";s1.score = 90;s1.showInfo();s1.study();s1.showInfo();s1.play();}
}

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

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

相關文章

RabbitMQ RPC模式Python示例

文章目錄 1.服務端2.客戶端3.調用結果 1.服務端 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- """ File: rabbitmq_server.py Date: 2025/6/26 10:42 Author: xxx Description: 1. RabbitMQ服務端,支持多節點命令執行 2. 作為被控…

Rust代碼規范之蛇形命名法和駝峰命名法

Rust 使用兩種主要的命名風格:駝峰命名法(UpperCamelCase)和蛇形命名法(snake_case)。通常,類型(如結構體、枚舉、特征)使用駝峰命名法,而變量、函數、方法等使用蛇形命名…

編寫CSS的格式

1、內聯樣式的css import React, { PureComponent } from reactexport class App extends PureComponent {constructor() {super()this.state {fs: 20}}render() {const { fs } this.statereturn (<div><p style{{ color: red, fontSize: ${fs}px }}>哈哈哈哈哈…

Redis—主從復制

引言 Redis的應用還得是在分布式系統當中。在分布式系統中&#xff0c;涉及到一個非常關鍵的問題&#xff0c;就是單點問題。例如&#xff0c;如果某個服務器程序&#xff0c;只有一個節點&#xff08;只搞了一個物理服務器&#xff0c;來部署這個服務器程序&#xff09;&…

【網絡安全】從IP頭部看網絡通信:IPv4、IPv6與抓包工具 Wireshark 實戰

從IP頭部看網絡通信&#xff1a;IPv4、IPv6與抓包工具 Wireshark實戰 在網絡安全分析和數據通信的世界中&#xff0c;一切都始于“數據包”。數據包是網絡上傳輸的基本單位&#xff0c;而數據包的結構與內容&#xff0c;正是我們理解網絡行為的核心。本文將帶你深入了解 IP 協…

IPv4網絡地址分類

目錄 一、核心分類標準 二、詳細范圍與主機數量 1. A類網絡&#xff08;超大規模網絡&#xff09; 2. B類網絡&#xff08;中大型網絡&#xff09; 3. C類網絡&#xff08;小型網絡&#xff09; 三、三類網絡對比表 四、保留地址說明 五、現代網絡中的變化 六、主機數…

Qt:QCustomPlot庫簡介

QCustomPlot 是一個基于 Qt 框架的輕量級 C 繪圖庫&#xff0c;專為高效繪制二維圖表&#xff08;如曲線圖、柱狀圖、金融圖表等&#xff09;而設計。相比 Qt Charts 模塊&#xff0c;它以 高性能 和 高度可定制性 著稱&#xff0c;尤其適合需要實時數據可視化的科學計算、工業…

【云桌面容器KasmVNC】如何關閉SSL使用HTTP

1 緣起 根據實際的訴求,調整實現方式。 為用戶提供云瀏覽器(通過瀏覽器訪問遠程瀏覽器),多用戶的每個任務提供資源隔離的云瀏覽器。 該功能,由同事祥嵩曾調研與開發,使用KasmVNC實現功能,非常佩服祥嵩,無論是技術廣度還是技術深度都是杠杠滴,無可挑剔。 實際的訴求是…

跟著AI學習C#之項目實戰-電商平臺 Day5

&#x1f4c5; Day 5&#xff1a;訂單提交與支付模擬 ? 今日目標&#xff1a; 創建 Order 和 OrderItem 模型實現從購物車生成訂單的功能模擬支付流程&#xff08;成功/失敗頁面&#xff09;添加訂單狀態跟蹤&#xff08;如“待付款”、“已發貨”等&#xff09;提交 Git 版…

復雜驅動開發-TLE9471的休眠流程與定時喚醒

文章目錄 前言休眠流程定時喚醒功能總結 前言 開發SBC時非常重要的一環就是開發休眠流程&#xff0c;其目的是為了保證接KL30的ECU在休眠模式下盡可能小的消耗低壓蓄電池的電量&#xff0c;防止車輛放置長時間后出現虧電。而定時喚醒功能在部分ECU中會有需求休眠后定期對車輛狀…

Spark 之 Reuse

src/main/scala/org/apache/spark/sql/execution/reuse/ReuseExchangeAndSubquery.scala case object ReuseExchangeAndSubquery extends Rule[SparkPlan] {def apply(plan: SparkPlan): SparkPlan = {if (conf.exchan

Solidity學習 - 錯誤處理

文章目錄 前言EVM錯誤處理機制EVM錯誤處理的核心特性程序中的錯誤處理 錯誤拋出方法require()函數require()觸發異常的場景關鍵特性 assert()函數assert()觸發異常的場景關鍵特性 require() vs assert()&#xff1a;選擇指南revert()函數關鍵特性 異常捕獲&#xff1a;try/catc…

如何永久刪除Android上的短信[無法恢復]

當您不再保留 Android 設備時&#xff0c;您將需要徹底刪除所有私人數據&#xff0c;包括短信。因此&#xff0c;有必要了解如何永久刪除Android上的短信。現在&#xff0c;閱讀本指南&#xff0c;掌握消除信息的實用方法。 第 1 部分&#xff1a;如何一鍵永久刪除 Android 上的…

P12894 [藍橋杯 2025 國 Java B] 智能交通信號燈

[Problem] \color{blue}{\texttt{[Problem]}} [Problem] 給定一個長度為 n n n 的數組 a 1 … n a_{1\dots n} a1…n?&#xff0c;進行 m m m 次一下操作&#xff1a; 給定 l , r l,r l,r&#xff0c;求出 ∑ l ≤ i < j ≤ r mex { a i , a j } \sum\limits_{l \le…

華為云Flexus+DeepSeek征文|基于華為云一鍵部署的 Dify-LLM 平臺構建智能試卷生成助手

目錄 前言 1 華為云Dify-LLM應用平臺部署 1.1 一鍵部署平臺簡介 1.2 四步完成部署流程 2 接入華為云 DeepSeek 自定義大模型 2.1 ModelArts Studio 模型服務介紹 2.2 配置自定義大模型 3 創建試卷生成工具&#xff08;工作流&#xff09; 3.1 設計 DSL 工作流 3.2 工…

嵌入式硬件與應用篇---寄存器GPIO控制

在 ARM 架構中&#xff0c;通過 32 位寄存器控制 GPIO&#xff08;通用輸入輸出&#xff09;的核心步驟和方法可分為以下幾個關鍵環節&#xff0c;結合不同芯片的實現差異&#xff0c;具體操作需參考對應的數據手冊&#xff1a; 一、GPIO 控制的核心步驟 1. 使能 GPIO 時鐘 …

Fiddler中文版抓包工具在跨域與OAuth調試中的深度應用

跨域和OAuth授權流程一直是Web和移動開發中最容易踩坑的領域。復雜的CORS配置、重定向中的Token傳遞、授權碼流程的跳轉&#xff0c;以及多域名環境下的Cookie共享&#xff0c;常常讓開發者陷入調試困境。此時&#xff0c;一款能夠精準捕獲、修改、重放請求的抓包工具顯得至關重…

React用戶交互事件

在React中處理用戶交互事件&#xff08;如點擊、輸入、提交等&#xff09;的方式與原生JavaScript類似&#xff0c;但有一些語法差異和最佳實踐。以下是常見交互事件的處理方法及代碼示例&#xff1a; 一、基本事件處理&#xff08;點擊、輸入等&#xff09; 1. 點擊事件&…

DHT11 STM32 HAL驅動庫 整數

dht11.h #ifndef __DHT11_H #define __DHT11_H#include "stm32f1xx_hal.h" // 根據實際芯片型號調整&#xff08;如stm32f4xx_hal.h&#xff09;// DHT11數據結構 typedef struct {GPIO_TypeDef *GPIOx; // GPIO端口&#xff08;如GPIOA&#xff09;uint16_t GP…

【Actix Web 精要】Rust Web 服務開發核心技術與實戰指南

目錄 一、Actix Web 核心架構解析1.1 核心組件交互流程1.2 關鍵組件說明&#xff1a; 二、項目初始化與配置2.1 創建項目2.2 添加依賴 (Cargo.toml)2.3 項目結構 三、核心模塊實現3.1 配置管理 (src/config.rs)3.2 應用狀態管理 (src/main.rs)3.3 數據模型 (src/models/user.rs…