C# 面向對象

来源:https://www.cnblogs.com/zhangxing4731/archive/2020/03/21/12539940.html
-Advertisement-
Play Games

面向對象: 面向對象方法是軟體工程、程式設計的主要方向,也是最有效、最實用和最流行的軟體開發方法之一。 C#是完全面想對象(OOP)的程式設計語言,具有面向對象程式設計方法的所有特性。 面向對象方法的基本思想就是從所要解決的問題本身出發,儘可能運用自然的思維方式(分析、抽象、分類、繼承),以現實世界 ...


面向對象:

面向對象方法是軟體工程、程式設計的主要方向,也是最有效、最實用和最流行的軟體開發方法之一。

C#是完全面想對象(OOP)的程式設計語言,具有面向對象程式設計方法的所有特性。

面向對象方法的基本思想就是從所要解決的問題本身出發,儘可能運用自然的思維方式(分析、抽象、分類、繼承),以現實世界中的事物為中心思考問題、認識問題,並根據這些事務的本質特征,把他們抽象表示為系統中的對象,作為系統的基本構成單位。

面向對象的最基本的特征是抽象性、封裝性、繼承性、多態性

 

對象(object):

客觀世界中任何事物都可以看成一個對象,汽車、房屋、狗都可以看成一個對象。

任何對象都應當具有屬性(attribute)和行為(behavior)兩個要素。

對象 = 屬性 + 行為(方法、操作)

 

類(class):

類表示具有相同屬性和行為的一組對象的集合。

C#程式的源代碼必須放到類中,一個程式至少包括一個類。

類是抽象的,不占用記憶體,而對象是具體的,占用存儲空間

抽象(abstraction):

抽象是處理事務複雜性的方法,只關註與當前目標有關的方面,而忽略與當前目標無關的方面。

int是對所有整數的抽象,double是對所有雙精度浮點型數的抽象。

 

封裝(encapsulation):

將有關的數據和操作代碼封裝在一個對象中,形成一個基本單位,各個對象之間相對獨立,互不幹擾。

將對象中的某些部分對外隱藏,即隱藏內部細節,只留下少量介面,以變與外界聯繫,接收外界聯繫。

一臺電視機就是一個封裝體,從用戶的角度只需要關註開關按鈕,音量開光等,不需要關心其內部構造

 

繼承

如果在軟體開發中已建立了一個名為A的類,又想建立一個名為B的類,B與A內容基本相同,B在A的基礎上增加了一些新的屬性和行為。顯然不必再從頭設計一個新類,只需在A類的基礎上增加一些新的內容,B擁有A的全部屬性與方法,稱作B類對A類的繼承。A類稱為基類或父類,B類稱為派生類或子類。

繼承機制的優勢在於降低了軟體開發的複雜性和費用,使軟體系統易於擴充,大大縮短了軟體開發周期,對於大型軟體的開發具有重要的意義。

 

多態(polymorphism):

在基類中定義的屬性或方法被派生類繼承後,可以具有不同的數據類型或表現出不同的行為。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、Go 語言最主要的特性 自動垃圾回收 更豐富的內置類型 函數多返回值 錯誤處理 匿名函數和閉包 類型和介面 併發編程 反射 語言交互性 2、$GOPATH目錄約定有三個子目錄 src存放源代碼(比如:.go .c .h .s等) 按照golang預設約定,go run,go install等命令 ...
  • 關鍵詞:鄭州 二本 物理專業 先前端實習生 後Java程式員 更多文章收錄在碼雲倉庫:https://gitee.com/bingqilinpeishenme/Java Tutorials 前言 沒有正式復工,就一直在老家待著,已經很長時間沒有在三月份時候待在老家了,好久好久,從08年去縣城上高中開 ...
  • 問題背景 使用mybatis-plus進行資料庫交互,預設開啟null不更新設置,在新增數據後,編輯頁面將欄位值清除後(date類型,int類型,為避免預設值傳入,model全部使用包裝類型初始化為null)無法將null值更新至資料庫 單個解決方案 通過UpdateWrapper的set方法強制字 ...
  • Spring 整合 Mybatis 在開始使用 MyBatis Spring 之前,需要先熟悉 Spring 和 MyBatis 這兩個框架和有關它們的術語。 MyBatis Spring 需要以下版本: | MyBatis Spring | MyBatis | Spring 框架 | Spring ...
  • Startup構造函數 ConfigureServices方法 Configure方法 在ConfigureWebHostDefaults中直接配置服務和請求管道 ASP.NET Core一般使用Startup類來進行應用的配置。在構建應用主機時指定Startup類,通常通過在主機生成器上調用Web ...
  • 前言 為什麼在開發中,介面文檔越來越成為前後端開發人員溝通的樞紐呢? 隨著業務的發張,項目越來越多,而對於支撐整個項目架構體系而言,我們對系統業務的水平拆分,垂直分層,讓業務系統更加清晰,從而產生一系統平臺和系統,並使用介面進行數據交互。因此可見,業務的不斷發展,介面不斷增多,很多介面各自寄宿在不同 ...
  • 記錄更改控制項外觀學習 更改控制項外觀有三種方法:屬性、Style、ControlTemplate。 Style:可以一次對多個控制項設置屬性。 ContentTemplate: 自定義Control外觀,利用行為更改外觀。 屬性:<Window x:Class="WpfApp1.MainWindow" ...
  • 一、引言 面向介面(抽象)編程,是為了降低程式的耦合度,符合依賴倒置原則。因此典型的三層架構UI、BLL、DAL基於介面設計後,會拓展成UI、IBLL、BLL、IDAL、DAL。在上一篇《C# IoC學習筆記》中我們可以瞭解到,控制反轉(IoC)使對象的創建交給了第三方IoC容器如Unity。利用U ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...