.NET 基礎 一步步 一幕幕[面向對象之對象和類]

来源:http://www.cnblogs.com/yuhangwang/archive/2017/01/04/6250218.html
-Advertisement-
Play Games

對象和類 本篇正式進入面向對象的知識點簡述: 何為對象,佛曰:一花一世界,一木一浮生,一草一天堂,一葉一如來,一砂一極樂,一方一凈土,一笑一塵緣,一念一清靜。可見”萬物皆對象”。 對象:包含數據和操作的實體。 面向過程:面向的是完成這件事兒的過程,強調的是完成這件事兒的動作。 舉例:把大象塞進冰箱里 ...


對象和類

本篇正式進入面向對象的知識點簡述:

何為對象,佛曰:一花一世界,一木一浮生,一草一天堂,一葉一如來,一砂一極樂,一方一凈土,一笑一塵緣,一念一清靜。可見萬物皆對象

對象:包含數據和操作的實體。  

面向過程:面向的是完成這件事兒的過程,強調的是完成這件事兒的動作。

 

舉例:把大象塞進冰箱里

1、打開冰箱門

2、把大象塞進去

3、關閉冰箱門

如果我們用面向對象的思想來解決這件事兒,當執行這件事的人的不同的時候,我們需要為每個不同的人量身定做解決事情的方法。

面向對象:找個對象幫你做事兒。

把大象塞進冰箱里

我們把冰箱作為對象:

1、冰箱門可以被打開

2、大象可以被塞進冰箱里

3、冰箱門可以被關閉

這就是面向對象要乾的事。

 

我們在代碼中描述一個對象,通過描述這個對象的屬性和方法

對象必須是看得見摸得著的。

例如:

燈:屬性和方法

屬性:

外形:長的

亮度:500W

顏色:白色

牌子:XX

方法:發光

 

我們把這些具有相同屬性和相同方法的對象進行進一步的封裝,抽象出來 類這個概念。

類就是個模子,確定了對象應該具有的屬性和方法。

對象是根據類創建出來的。

類就是一個蓋大樓的圖紙   對象 就是蓋出來的大樓。

 

類:屬性和行為封裝起來的

聲明類的語法:[訪問修飾符]class<類名(自定義)>{}

[訪問修飾符] class 類名

{

   欄位;

   屬性;

   方法;

}

代碼展示:

public class Student
    {
        //欄位
        private string _name;

        //屬性
        public string Name
        {
            //當你輸出屬性的值得時候 會執行get方法
            get { return _name; }
            //當你給屬性賦值的時候 首先會執行set方法
            set { _name = value; }
        }

        public void Say()
        {
            Console.WriteLine();
        }
}
View Code

類與對象的區別:類和對象有著本質的區別,類是具體對象的抽象描述;而對象是真是的實體;由對象歸納為類,是歸納對象共性的過程;在類的基礎上,將狀態和行為實體化為對象的過程稱為實例化。

這裡有一個小案例(控制台程式):

static void Main(string[] args)
        {
            //  Person sunQuan;//自定義類
            // 創建Person類的對象
            Person suQuan = new Person();
            suQuan.Name = "笑顏";
            suQuan.Age = -18;
            suQuan.Gender = '';
            suQuan.CHLSS();
            Console.ReadKey();
        }
/ / Person  自定義類
    public class Person
    {
        private string _name;
        public string Name
        {
            //當你輸出屬性的值得時候 會執行get方法
            get { return _name; }
            //當你給屬性賦值的時候 首先會執行set方法
            set { _name = value; }
        }

        private int _age;
        public int Age
        {
            get { return _age; }
            set
            {

                if (value < 0 || value > 100)
                {
                    value = 0;
                }

                _age = value;
            }
        }

        private char _gender;
        public char Gender
        {
            get
            {
                if (_gender != '' && _gender != '')
                {
                    return _gender = '';
                }
                return _gender;

            }
            set { _gender = value; }
        }

        public void CHLSS()
        {
            Console.WriteLine("我叫{0},我今年{1}歲了,我是{2}生,我可以吃喝拉撒睡喲~~~", this.Name, this.Age, this.Gender);
        }
}
View Code

運行結果:

 

 

最後總結:類是對象的具體實現, 對象是類的抽象描述

最後打個小廣告:QQ群: .NET 一步步一幕幕  群號:590170361 (加群備註:博客園看到的)

 


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

-Advertisement-
Play Games
更多相關文章
  • 第七節 Linux系統目錄結構介紹 標簽(空格分隔):Linux實戰教學筆記 第1章 前言 windows目錄結構 C:\windows D:\Program Files E:\你懂的\精品 F:\你懂的\動態圖 linux 目錄結構 一切從根開始 ===== ![屏幕快照 2017 01 02 下 ...
  • Ubuntu預設的是root用戶不能登錄圖形界面的,只能以其他用戶登錄圖形界面。這樣就很麻煩,因為許可權的問題,不能隨意複製刪除文件,用gedit編輯文件時經常不能保存,只能用vim去編輯。 解決的辦法是,編輯/etc/lightdm/lightdm.conf文件(可以先備份一下),把該文件編輯成這樣 ...
  • 查看網路狀態 ifconfig 修改網路參數 實驗環境centos6.5,其他系統自行百度 ls /etc/sysconfig/network-scripts 顯示所有文件, vi /etc/sysconfig/network-scripts/ifcfg-eth0 vi編輯網路參數 ONBOOT=y ...
  • 安裝網卡驅動程式: 需要檢查是否安裝kernel依賴包: rpm –q kernel-devel #檢查kernel依賴包是否安裝 yum –y install kernel-devel 檢查gcc和make是否安裝: rpm –q gcc make 下載驅動源碼包: 解壓源碼包: 安裝: 由於已經... ...
  • 作者:彭東林 郵箱:[email protected] QQ:405728433 開發板 TQ2440 + 64MB 內存 + 256MB Nand 軟體 Linux: Linux-4.9 (https://github.com/pengdonglin137/linux-4.9 ) u-b ...
  • 用U盤安裝Kali Linux的過程中,出現cd-rom無法掛載的現象,百度坑比啊,醉了。 下麵親測成功 ...... ...
  • 位運算符: 與:&二進位位均為1時,結果為1,否則0。二元運算,按位比較。 或:|二進位位均為0時,結果為0,否則1。二元運算,按位比較。 異或:^二進位位相同時,結果為0,否則1。二元運算,按位比較。 反:~二進位0時,結果為1,否則0。一元運算,按位比較。 左... ...
  • 異常處理在程式中也算是比較重要的一部分了,IL異常處理在C#裡面實現會用到一些新的方法 1.BeginExceptionBlock:異常塊代碼開始,相當於try,但是感覺又不太像 2.EndExceptionBlock:異常塊代碼結束,BeginExceptionBlock相當於try,EndExc ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...