C#面向對象學習-欄位、屬性

来源:http://www.cnblogs.com/sadseal/archive/2017/07/18/7199448.html
-Advertisement-
Play Games

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ClassDemo ... ...


 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ClassDemo
 8 {
 9     /// <summary>
10     /// 學員類
11     /// </summary>
12     /// 總結:
13     /// 欄位:(成員變數)
14     /// 欄位主要是為類的內部做數據交互使用,一般是private;
15     /// 欄位可以賦值,也可以取值;
16     /// 當欄位需要外部提供數據的時候,請將欄位封裝為屬性,而不是使用公有欄位,這是面向對象所提倡的;
17     /// 屬性:
18     /// 屬性一般是向外提供數據,主要用來描述對象的靜態特征,所以,一般屬性是public;
19     /// 屬性可以根據需要設置為只讀、只寫,提高數據安全性;
20     /// 屬性內部可以添加我們需要的業務邏輯,從而避免非法數據;
21     class Student
22     {
23         /// <summary>
24         ///欄位:又稱為成員變數,一般在類的內部做數據交互使用,所以一般使用private修飾;
25         ///欄位命名規範:欄位命名一般採用camel命名法,首字母小寫
26         ///欄位的通俗理解:欄位好比我們的個人財產,只供我們自己使用,所以一般是private修飾;
27         ///添加標準:一個類總究竟需要添加幾個欄位,根據程式編寫過程的需要來決定的;
28         /// </summary>
29         //欄位:學號
30         private int studentId;
31         //欄位:姓名
32         private string studentName = string.Empty;
33         //欄位:年齡
34         private int age;
35 
36 
37 
38         /// <summary>
39         /// 屬性是外界訪問私有欄位的入口,屬性本身不存任何數據
40         /// 給屬性賦值,其實是給屬性指向欄位的私有欄位賦值;
41         /// 讀取屬性值,其實是獲取屬性指向的私有欄位值或其他值;
42         /// 屬性一般首字母大寫;
43         /// </summary>
44        //屬性:學號
45        public int StudentId
46         {
47             get { return studentId; }
48             set { studentId = value; }
49         }
50 
51         //屬性:學生姓名
52         public string StudentName
53         {
54             get { return studentName; }
55             set { studentName = value; }
56         }
57 
58         //屬性:年齡
59         public int Age
60         {
61             //給屬性添加約束;
62             get { return age; }
63             set {
64                 if (value < 18)
65                     age = 18;
66                 else
67                     age = value;
68             }
69         }
70 
71         //方法:獲取學員信息;
72         /// <summary>
73         /// 訪問修飾符,可以省略,預設private,可以根據需要修改為public
74         /// 方法名,一般是“動詞”或“動賓短語”,採用Pascal命名法,首字母大寫,不能以數字開頭
75         /// 參數列表:根據需要添加,也可以省略,參數列表要求“類型 參數名稱”的形式,使用逗號分隔不同的參數;
76         /// 有返回值:使用return返回;return 語句後面不能再有其他語句;
77         /// 沒有返回值:如果不返回任何數據,使用viod表示;
78         /// </summary>
79         /// <returns></returns>
80 
81         public string GetStudent()
82         {
83             string info = string.Format("姓名:{0} 學號:{1}", studentId, studentName);
84             return info;
85         }
86         //自動屬性 prop+tab+tab
87         //適用範圍:不能直接操作私有欄位,不能設置只讀只寫屬性,不能添加驗證邏輯;
88         public int MyProperty { get; set; }
89     }
90 }

 


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

-Advertisement-
Play Games
更多相關文章
  • 1. 命令的概念 命令的執行過程 系統第一次執行外部命令時Hash緩存表為空,系統會先從PTAH路徑下尋找命令,找到後會將路徑加入到Hasa緩存中,當再次執行此命令時會直接從Hash的路徑下執行,如果存在直接執行,如果不存在將繼續從PATH下的路徑繼續查找,Hash表可以提高命令的調用速率。 命令的 ...
  • 從VSS上獲取以前的老項目,編譯時報System.Runtime.CompilerServices.ExtensionAttribute..ctor 網上寫的“刪除 Newtonsoft.Json.Net20.dll 後重新引用”,並沒有解決這個問題。 原文首發在我的主力博客 http://anfo ...
  • 一. Dapper 簡介 一個效率比較高的微型ORM。 二 . Dapper.Rainbow Dapper的擴展,在這個擴展裡面實現了 Dynamic 的 插入和更新,這個對於使用動態類型的對象很有用,可以少建很多貧血型的實體類。 三 . Dynamic Dynamic 這是一把雙刃劍,在提高效率的 ...
  • 作者在做短鏈接功能時,url參數裡帶了&字元,結果無法轉換。後來查了一下,發現可以用其它符號代替。下麵是對應表 + URL 中+號表示空格 %2B 空格 URL中的空格可以用+號或者編碼 %20 / 分隔目錄和子目錄 %2F ? 分隔實際的URL和參數 %3F % 指定特殊字元 %25 # 表示書簽 ...
  • ASP.NET Core 輕量化開源論壇項目,ASP.NET Core Light forum NETCoreBBS 採用 ASP.NET Core + EF Core Sqlite + Bootstrap 開發。 GitHub: https://github.com/linezero/NETCor ...
  • 開頭添加變數: Point mouseOff;//滑鼠移動位置變數 bool leftFlag;//標簽是否為左鍵 事件部分: ps:很常用的幾串字元。 記住! 記住! 記住! ...
  • 前言: 本文主要是介紹了Nunit的基本使用,其中參詳了很多已有的文章,由於最近要使用其進行測試,所以對網上的文章做了下整理,同時加入了一些自己的實踐。 NUnit的屬性 TestFixture 它標記一個類包含測試,申明該類是用來測試的。一般用在class的定義之前; Test 一般是放在meth ...
  • 一、前言 最近公司新項目,需要搭架構進行開發,其中需要保證事務的一致性,經過一番查找,發現很多博文都是通過Spring.Net、Unity、PostSharp、Castle Windsor這些方式實現AOP的。但是這不是我想要的,因此一番查找後,使用 該方式實現AOP。 二、使用AOP的優勢 博主覺 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...