class對象【C#】2025復習

對象?

西方思想是:復雜的事讓秘書去做就行。老板只需簡單的下達命令。

代碼格式如下

? ? ? ? 秘書類型? ? ? ? 秘書A? =? ?new? ? 秘書類型();

.

? ? ? ? 秘書A.開始工作();? ? ? ? ? ? ? ? //? 調用實例對象的方法

特別注意的是,程序只會用到? 秘書A,秘書B,秘書C,。。。。不會用到秘書類型。

秘書類型只相當于圖紙,程序只會用到圖紙生產出來的實例對象【秘書A就是實例對象】,而且C#不需要關心銷毀對象。

對象設計

電腦是不知道對象的,所以你需要描述告訴電腦什么是對象。? ? ?//? ?描述出對象類型

????????一個class對象包含 {字段,屬性,方法}。

東西要先擁有后,才能使用。就像你買了PLC,你不編程,按機器按鈕是不會啟動機器的。

最簡寫的對象是:字段?+ 方法

字段:對象能用數字表示的東西,如年齡,身高等。

方法:就是不能用值類型表示,唱歌,跳舞等。行為用方法表示。

.

? ? ? ? class? ? ? ? 秘書類型

? ? ? ? {

? ? ? ? ? public? ? ?int? ? ? ?年齡 = 18;? ? ? ? ? ? ? ? ? ? ? ? //? 字段

? ? ? ? ? public? ? ? void? ? ? ? 開始工作()? ? ? ? ? ? ? ? ? ? ?//? 方法

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步驟1;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步驟2;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步驟N;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

????????}

字段

????????????????秘書A.年齡? = -18 ;

字段使用時會有問題,比如年齡給負數,-18歲。語法上是正確的,但不符合實際情況。

所以衍生出了屬性。用于限制輸入值的范圍,如0~140;

public? ? int? 年齡{? get;? set { if(value>0 && value<100)}? ?//編譯器自動生成一個內部的年齡,只是我們看不到而且。不推薦這種寫法。

.

我們應該顯示的定義一個私有字段【_年齡】,然后定義一個屬性【年齡】,把屬性的值,給私有字段。這樣才能保證年齡值不出錯。

.

? ? ? ? class? ? ? ? 秘書類型

? ? ?{

? ? ? private? ? ?int? ? ? ?年齡 = 18;? ? ? ? ? ? ? ? ? ? ? ? //? 變量

? ? ?// 這里屬性到變量,起到數據隔離的作用,保證數據不出錯。

? ? ? public? ? ? int? ? ?年齡屬性{get? return? 年齡;set{if(value>0&&value<140)年齡=value;}

? ? ? public? ? ? void? ? ? ? 開始工作()? ? ? ? ? ? ? ? ? ? ?//? ?行為

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步驟1;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步驟2;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 步驟N;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

????????}

// 變量名和屬性名不能重名,可以這樣寫【_年齡,年齡】

屬性是用來跟外界交互的,不用public就沒意義了。雖然字段也可以,但字段不安全。

一個class對象包含 {字段,屬性,方法}。

到這里? ? ? ??

秘書類型? ? ? ? 秘書A? =? ?new? ? 秘書類型();

.

? ? ? ? 秘書A.年齡屬性? = -18 ;? ? ? ? ? ? ? ? //? 這里是輸不進去的。數據防呆

常用屬性寫法有

public int MyProperty { get; set; }? ? ? ? //編譯器默認會生產一個私有MyProperty的字段變量

.

private int myVar;

public int MyProperty { get { return myVar; } set { myVar = value; } }? ? ? ? //推薦用這種

.

public int MyProperty { get; private set; }

.

public int MyProperty { get; set; } = 50;????????//帶默認值

.

public int num;

public int MyProperty { get=>num; set=>num=value; }? ? ? ? // 萊姆達寫法

=================================

以上的屬性,可以看作是一個方法。可以對值做邏輯判斷,然后報警寫入日志等。

屬性和字段是配合使用的。屬性的本質是方法,用來保護字段的值【數據隔離】?

字段:主要是內部使用,所以一般都是private修飾的變量。注意:公有字段不能被控件識別

屬性:主要是外部使用,所以必須是public修飾。作用:1業務擴展2控制字段讀寫

方法

函數,方法,行為,功能,是同一個意思。只是稱呼不同而已。【番茄,西紅柿】

方法就是對象的行為描述。對象有哪些功能。這些行為都需要自己去編寫【對象的功能】

方法有以下幾種:

? ? ? ? ? ? ? ? ? ? ? ? ? ?無參無返回? ? ? ? void????????開始工作();

? ? ? ? ? ? ? ? ? ? ? ? ? ?有參無返回? ? ? ? void? ? ? ??開始工作(int? 參數A);

? ? ? ? ? ? ? ? ? ? ? ? ? ?無參有返回? ? ? ? int? ? ? ? ? ?開始工作();

? ? ? ? ? ? ? ? ? ? ? ? ? ?有參有返回? ? ? ? int? ? ? ? ? ?開始工作(int? 參數A,int? 參數B);

秘書類型? ? ? ? 秘書A? =? ?new? ? 秘書類型();? ? ? ?//這里也是方法調用,調用無參構造方法

秘書類型? ? ? ? 秘書A? =? ?new? ? 秘書類型(身高1米8);? ? ? ?//調用有參構造方法

.

? ? 秘書A.開始工作();? ? ? ? ? ? ? ? //? 無參

? ? 秘書A.開始工作(工作8小時);? ? ? ? ? ? ? ? //? 有參

? ? 秘書A.開始工作(工作8小時,加班4小時);? ??//? 有參,不要超過4個,否則參數用對象傳

? ?int? 工作結果? =??秘書A.開始工作();? ? ? ? ? ? ? ?//??

方法種類:

? ? ? ? ? ? ? ? 實例方法? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // new后的實例,再調用方法。

? ? ? ? ? ? ? ? 靜態方法(抽象方法,虛方法)? ? ? ?//要用類型去調用

? ? ? ? ? ? ? ? 構造方法(對象初始化器)

構造方法

秘書類型()? ??? ? ? ?//編譯器默認提供一個無參構造方法

????????秘書類型(int A,int B)

? ? ? ? 秘書類型(int A,int B,int C)

? ? ? ? :this(A,B)? ? ? ? //調用構造重載? ? ? ? :base 是調用父類重載

? ? ? ? {

? ? ? ? ? ? ? ? this.表示實例對象的

? ? ? ? ? ? ? ? base.表示父類的

? ? ? ? }

對象初始化器

? ? ? ? ? ? ? ? ? ? ? ? //用來初始化實例對象

秘書類型? ? ? ? 秘書A? =? ?new? ? 秘書類型()? ? ? ? ? ? ? //屬性之間用逗號隔開,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??最后一個屬性不需要逗號

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?年齡屬性 = 18

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

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

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

相關文章

Qt程序啟動動畫

一、Qt有3種方式實現程序啟動動畫&#xff08;介紹&#xff09; 1、QSplashScreen 靜態圖片(png、jpg等格式) 2、QMovie 動態圖片(gif格式) 3、QAxWidget 視頻(swf格式) 1.QSplashScreen 靜態圖片(png、jpg等格式) //創建啟動動畫類實例 QSplashScreen splash(QPixmap(&qu…

貪心算法經典問題

目錄 貪心思想 一、Dijkstra最短路問題 問題描述&#xff1a; 貪心策略&#xff1a; 二、Prim 和 Kruskal 最小生成樹問題 Prim 算法&#xff1a; Kruskal 算法&#xff1a; 三、Huffman樹問題 問題描述&#xff1a; 貪心策略&#xff1a; 四、背包問題 問題描述&a…

零知開源——STM32F4實現ILI9486顯示屏UI界面系列教程(一):電子書閱讀器功能

本教程將詳細介紹如何在零知增強板上使用3.5寸ILI9486顯示屏實現電子書閱讀器功能。我們將使用LVGL庫構建用戶界面&#xff0c;并實現翻頁、進度顯示等核心功能。 目錄 一、硬件連接 二、軟件UI組件實現 三、零知IDE配置 四、演示效果 五、常見問題解決 六、總結與擴展 一…

支持selenium的chrome driver更新到137.0.7151.119

最近chrome釋放新版本&#xff1a;137.0.7151.119 如果運行selenium自動化測試出現以下問題&#xff0c;是需要升級chromedriver才可以解決的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…

架構下的最終瓶頸:數據庫如何破局?

在分布式系統和云原生架構逐漸成熟的當下&#xff0c;我們已能夠靈活擴展計算資源、水平擴展服務節點、拆分業務模塊等。然而&#xff0c;在經歷過多輪架構優化之后&#xff0c;數據庫常常成為系統的“最后瓶頸”。尤其當數據量、并發量、實時性要求劇增時&#xff0c;數據庫即…

湖北理元理律師事務所小微企業債務重組方案:司法與經營的共生邏輯

小微企業債務問題常陷入“救企業還是保老板”的困局。湖北理元理律師事務所為某汽車零部件供應商設計的“經營性債務重組”方案&#xff0c;提供了創新解題思路。 核心矛盾拆解 該企業面臨三重困境&#xff1a; 矛盾類型 具體表現 法律風險等級 擔保鏈危機 老板個人擔保牽…

FastAdmin退出登錄不提示的修改方法

修改退出登錄后的提示行為 在FastAdmin中&#xff0c;默認退出登錄后會顯示"退出成功"的提示信息并跳轉頁面。要實現不顯示提示信息直接跳轉&#xff0c;可以通過以下方式修改&#xff1a; 方法一&#xff1a;修改控制器邏輯 找到application/admin/controller/Log…

工信部發布《中國工業軟件產業發展研究報告(2025)》:PLM壟斷加劇,Ai為國產PLM軟件發展契機

在6月17日上午舉行的2025南京軟件大會開幕式上&#xff0c;工信部電子第五研究所現場發布《中國工業軟件產業發展研究報告&#xff08;2025&#xff09;》&#xff08;以下簡稱《研究報告》&#xff09;&#xff0c;并從工業軟件產業發展現狀、產業發展趨勢&#xff0c;以及我國…

Flutter JSON解析全攻略:使用json_serializable實現高效序列化

引言&#xff1a;為什么我們需要JSON序列化工具&#xff1f; 在現代移動應用開發中&#xff0c;與服務器進行數據交互是必不可少的功能。JSON&#xff08;JavaScript Object Notation&#xff09;作為一種輕量級的數據交換格式&#xff0c;因其易讀性、簡潔性和廣泛支持性&…

shelve模塊的使用

shelve模塊的使用 1. 什么是Shelve2. Shelve模塊的數據存儲與讀取3. Shelve的讀取數據4. Shelve模塊的高級操作_ Shelve的數據更新和刪除5. 刪除操作可以使用del語句&#xff1a;6. Shelve的數據查詢和處理_使用for循環來遍歷Shelve對象中的所有鍵值對&#xff1a;7. Shelve模塊…

python大學校園舊物捐贈系統

目錄 技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xf…

Python爬蟲實戰:研究eventlet庫相關技術

1. 引言 在當今信息爆炸的時代,網絡上的數據量呈現出指數級增長的趨勢。從海量的網絡信息中獲取有價值的數據并進行分析,對于企業決策、學術研究以及個人興趣等方面都具有重要意義。網絡爬蟲作為一種自動化獲取網頁內容的技術手段,應運而生并得到了廣泛的應用。 網絡爬蟲(…

文字識別接口-智能文本處理-文字提取技術

文字識別接口&#xff0c;顧名思義&#xff0c;就是一種將圖像文字或手寫文字轉換為可編輯文本的技術。文字識別接口&#xff0c;基于深度學習算法與自主ocr核心實現多種場景字符的高精度識別與結構化信息提取&#xff0c;現已被廣泛應用于銀行、醫療、財會、教育等多個領域。 …

Redis的持久化機制詳細解析

Redis的持久化機制詳細解析 今天我們來聊聊Redis的持久化機制。想象一下&#xff0c;你正在玩一個非常精彩的游戲&#xff0c;突然斷電了&#xff0c;如果沒有存檔功能&#xff0c;所有的進度都會丟失&#xff0c;是不是很崩潰&#xff1f; Redis作為內存數據庫&#xff0c;同…

2025年SYN-CC混合攻擊防御實戰:某金融平臺抵御800Gbps雙重風暴實錄

“你以為防住SYN Flood就能高枕無憂&#xff1f;新型SYN-CC混合鏈正在撕裂傳統防御體系&#xff01;” 一、事件現場&#xff1a;一場精準的“協議層絞殺” 2025年5月&#xff0c;某跨境支付平臺遭遇史上首次SYN-CC混合攻擊&#xff0c;峰值流量達 800Gbps&#xff0c;核心交易…

JSON 編輯器:從語法到數據處理(二)

JSON 編輯器&#xff1a;從語法編寫到結構可視化&#xff08;一&#xff09;-CSDN博客 在上一篇中&#xff0c;我們了解了 JSON 的語法和編輯器&#xff0c;解決了 “怎么寫對 JSON” 的問題。 而實際開發中&#xff0c;更關鍵的是 “怎么高效處理 JSON 數據” —— 如何從商品…

按鍵開關的結構、功能與環保安全?

工業控制的核心觸手&#xff1a;深度解析按鍵開關的結構、功能與環保安全 一、 結構基石&#xff1a;雙觸點轉換機制 按鍵開關的核心在于其精妙的觸點系統。絕大多數按鍵開關都配備有兩對獨立的觸點&#xff0c;這是實現復雜控制邏輯的基礎。每一對觸點并非隨意組合&#xff…

BigDetection:改進目標檢測器預訓練的大規模基準之論文閱讀

摘要 近年來,多個數據集和開放挑戰已被引入用于目標檢測研究。為了構建更通用且強大 的目標檢測系統,本文提出了一個新的大規模基準數據集,稱為 BigDetection。我們的目標是 整合現有數據集(LVIS、OpenImages 和 Object365)的訓練數據,并遵循精心設計的原則,構建一個更…

Linux系統移植⑨:uboot啟動流程詳解-bootz啟動Linux過程

Linux系統移植⑨&#xff1a;uboot啟動流程詳解-bootz啟動Linux過程 bootz 是 U-Boot 中用于啟動 Linux 內核的命令&#xff0c;專為處理 zImage&#xff08;壓縮內核映像&#xff09; 設計。 啟動 Linux 的完整過程&#xff1a; 1. 加載內核與相關文件 U-Boot 先將以下文件…

【R】基于R實現貝葉斯分析(一)

文章目錄 貝葉斯簡介Why R理論基礎一、三種先驗分布和對應后驗的計算1. 離散先驗2.Beta先驗&#xff08;共軛先驗&#xff09;3. 直方圖先驗 二. 后驗抽樣1. 網格點采樣法2. 其他方法 三、貝葉斯推斷1. 參數估計(1) 后驗均值(2) 后驗方差(3) 后驗區間 2. 假設檢驗3. 預測(1) 先…