c#入門系列——類和對象的代碼實現

? ? ? ? ?面向對象

? ? ? ? ?說起面向對象,大家因該都聽說過,也知道是一個編程的方法,簡稱oop技術。它將對象的算法和數據結構看作一個整體,而一個程序就是由多個對象結合的整體。這樣做可以提高代碼的復用率,提高了軟件的可維護性。

? ? ? ? ?屬性

? ? ? ? ?一個對象具有屬性和方法,屬性用來表述對象或類的特征,比如人的姓名、身高、性別、生日等都屬于人的屬性。在這里重點介紹下在c#中屬性如何定義和使用。

? ? ? ? ?定義

//定義屬性必須聲明類
public class date 
{//在date類中定義一個格式為int格式的屬性,屬性名稱為day,并為它賦值為7private int day=7
         //在這里,屬性其實已經定義好了,不過很多屬性都是private(私有的除了本類無法訪問)所以我們還要給它寫一個訪問器//聲明一個訪問器,使外部的數據可以讀取和修改day的值public int day{//從屬性中得到day的值get{//將day的值返回return day;}set{//將值賦給day,實現修改的功能day=value;}}
}
//如果想要定義只讀屬性的話,只定義get即可,set訪問器不用定義。只寫屬性類似于只讀屬性。

? ? ? ? ?使用

? ? ? ? ?定義完屬性后,就是如何使用的問題了,我們用下面的帶碼講述下代碼如何使用:

class program
{static void main(string[] args){//將剛定義的date類實例化date mydate = new date();//給mydate的day屬性賦值為3mydate.Day = 3;//在控制臺輸出myday這個對象的day屬性的值,如果沒有get這個訪問器的話,控制臺就無法訪問到mydate的day屬性。Console.WriteLine(mydate.Day);}
}

? ? ? ? ?方法

? ? ? ? ?屬性說完了,接下來就是方法了。方法用于實現可以有對象或類執行的計算或操作。方法的聲明必須指定方法的 訪問級別、返回值、方法名稱和方法參數。有的方法沒有返回值的則定義為void類型,例如:

? ? ? ? ?聲明

public void test()
{console.writeline("這是一個測試控制臺輸出的方法")
}
? ? ? ? ?其中,public是訪問的級別代表公共訪問,是訪問級別的一種;void是返回值的類型,void代表無返回值;test是方法的名稱;()中應輸入方法的參數,該方法不需要傳入參數,所以()中是空白。該方法可以在控制臺輸出一條語句:"這是一個測試控制臺輸出的方法"。

? ? ? ? ?重載

? ? ? ? ?重載方法是指類中有兩個以上的同名方法,但是使用的參數類型、參數個數或順序不同,調用方法時,編譯器可以自動判斷使用哪種方法。
? ? ? ? ?下面介紹一下代碼的實現:
? ? ? ? ?
namespace ConsoleApplication14
{//重載方法的代碼實現class Program{//這是第一個方法,定義了方法 add,包括x,y兩個參數,兩個參數都是int類型的public static int add(int x, int y){//方法返回值,返回一個int類型的值return x + y;}//第二個方法,同樣定義了方法 add,包括x,y兩個參數,其中x是int類型,y是double類型public static double  add(int  x, double y){//方法返值,返回的是double類型的值,運行時系統自動將int(整數類型)轉化為double(帶小數的一種類型——雙精度浮點數)return  x + y;}//第三個方法,方法的名字還是add,不過變成了三個參數public static int add(int x, int y, int z){return x + y + z;}//主函數體static void Main(string[] args){//將program類實例化,只有實例化成為對象后才可以調用方法關于類和對象的介紹可以看我以前的博客//           類          對象Program Program = new Program();//定義參數x為int類型,并給它賦值為3int x = 3;//定義參數y1為int類型,并給它賦值為4int y1 = 4;//定義參y2為double類型,并給它賦值為5.5double y2 = 5.5;//定義參數z為int類型,并賦值為6int z = 6;//現在我們將定義好的參數傳遞給我們的方法,并將返回值輸出到控制臺//其中 + 符號代表的是連接符,將前面的字符與后面的字符鏈接;//而“+”代表的是輸出字符串,沒有實際意義,僅僅是為了輸出。//如果不太理解可以忽略,不影響對整體的理解。//在這里,傳入的兩個數據都是我們定義好的int類型的所以系統自動選擇第一個方法,輸出的結果是:3+4=7Console.WriteLine (x + "+"  + y1 + "=" + Program .add(x,y1) );//這里輸入的參數為x,y2其中x是int類型,而y2是double類型的//系統會自動選擇其中的第二個方法輸出結果是 3+5.5=8.5Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y2));//這里輸入參數為 x,y1,和z 系統會自動選擇有三個參數的方法。輸出結果是 3+4+6=13Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y1,z));//讓控制臺暫停Console.ReadLine();}}}
? ? ? ? ?這是程序運行后的圖片:
? ? ? ? ?

轉載于:https://www.cnblogs.com/liyasong/p/6387885.html

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

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

相關文章

安卓TCP通信版本2

PC做服務器,安卓做客戶端。 安卓獲取輸入框的內容并發送,然后等待接收服務器的消息 服務器先行開啟,接收到客戶端的數據,然后回復消息。 實現了對線程類的封裝,通過按鈕啟動線程發送并接收 服務器代碼(java…

Win32ASM學習[5]: 數據對齊相關的偽指令(ALIGN、EVEN、ORG)

32 位的寄存器容量是 4 字節, 如果內存中的數據都按 4*n 字節對齊, 肯定會加快吞吐速度; 但事實并非如此, 不同大小的數據可能會讓寄存器別別扭扭地去處理, 從而降低了運行速度! 如果使用對齊, 就會浪費掉一些內存空間; 其實這是一個需要權衡 "速度" 與 "內存&…

常用Jquery前端操作

input只能輸入正整數 οnkeyup"this.valuethis.value.replace(/\D/g,)"if(!confirm("刪除后無法恢復,確認繼續?")){return false;}//判斷字符串里是否存在指定字符 if(str.indexOf("abc") ! -1){//表示存在}1.雙引號替換…

【Linux/Ubuntu學習 10】unbuntu 下 eclipse 中文亂碼的解決

wangddwdd-pc:~$ gedit /var/lib/locales/supported.d/local 添加: zh_CN.GBK GBKzh_CN.GB2312 GB2312 終端執行命令: sudo dpkg-reconfigure --force localesGenerating locales... en_AG.UTF-8... done en_AU.UTF-8... done en_BW.UTF-8... done …

Win32ASM學習[6]: PTR、OFFSET、ADDR、THIS

PTR: 指定要操作的數據尺寸 ------------------------------------------------------------------------------------------------------------------------------------------ .386 .model flat, stdcall include windows.inc include kernel32.inc include masm…

簡述WebService的使用(一)

環境: vs版本:vs2013 windows版本:win7 IIS版本:IIS7.0 (如果覺得對您有用,請點擊右下角【推薦】一下,讓更多人看到,謝謝) 配置環境: 主要針對于IIS 首先&…

【Java基礎】用LinkedList實現一個簡單棧的功能

棧的基本功能 棧的最基本功能是保障后進先出,然后在此基礎上可以對在棧中的對象進行彈入彈出,此外,在彈出時,如果棧為空,則會報錯,所以還需要提供獲取當前棧大小的方法。 構造存儲對象Student /*** Created…

Win32匯編學習[7]: 定義符號常量(=、EQU、TEXTEQU)

關于符號常量 的例子 .386 .model flat,stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data n 1 ; 偽指令只能定義整數或整數表達式…

oracle 刪除表中重復記錄,并保留一條

1、查找表中多余的重復記錄,重復記錄是根據單個字段(Id)來判斷 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、刪除表中多余的重復記錄,重復記錄是根據單個字段(Id&#x…

透過WinDBG的視角看String

摘要 : 最近在博客園里面看到有人在討論 C# String的一些特性. 大部分情況下是從CODING的角度來討論String. 本人覺得非常好奇, 在運行時態, String是如何與這些特性聯系上的. 本文將側重在通過WinDBG來觀察String在進程內的布局, 以此來解釋C# String的一些特性. 問題 C# Stri…

Win32ASM學習[8]: 進制轉換的庫函數

在 masm32.inc 中有這樣幾個函數的聲明: byt2bin_ex PROTO :BYTE, :DWORD wrd2bin_ex PROTO :WORD, :DWORD dw2bin_ex PROTO :DWORD, :DWORD dw2hex_ex PROTO :DWORD, :DWORD bin2byte_ex PROTO :DWORD -------------------------------------------------------------…

SOJ 2800_三角形

真的是O不是0【看了discuss才發現。。。。。一個大寫的蠢 【題意】多個黑白三角形組成的倒三角,求白三角形組成的最大倒三角的面積 【分析】由于問的是倒三角個數,所以只需看與行數奇偶性相同的白色倒三角形,設v[i][j]為以第i行第j列的倒三角…

ueditor富文本編輯器 修改框寬度和高度的方法

在使用ueditor的時候&#xff0c;用的textarea <textarea name"content" id"myEditor">這里寫這條規則的回復內容</textarea> 給它加style"width:300" 屬性的時候&#xff0c;發現不起作用。 正確的方法應該是&#xff1a; <scri…

Win32ASM學習[9]: 標志寄存器

TF(Trap Flag)——位8&#xff0c;跟蹤標志。置1 則開啟單步執行調試模式&#xff0c;置0 則關閉。在單步執行模式下&#xff0c;處理器在每條指令后產生一個調試異常&#xff0c;這樣在每條指令執行后都可以查看執行程序的狀態。如果程序用POPF、POPFD 或者ET 指令設置TF 標志…

TCP多進程并發服務端 Linux socket編程入門(2)

這里很簡單的使用了fork()函數&#xff0c;在執行了fork()以后的所有代碼都會由子進程和父進程同時執行。 他們同時擁有相同的資源&#xff08;兩份拷貝&#xff09;&#xff0c;所以在子進程執行的過程中&#xff0c;子進程需要先close掉listenfd&#xff08;監聽套接字&#…

ArcEngine 打開shape文件

IWorkspaceFactory wsf new ShapefileWorkspaceFactory(); IWorkspace pWorkspace wsf.Open(filePath, 0) ;//filePath為shapefile所在的文件夾 IFeatureWorkspace pFeatureWorkspace pWorkspace ; IFeatureClass pFeatureClass pFeatureWorkspace.OpenFeatureClass(&quo…

Win32ASM學習[10]:傳送指令

匯編指令的一般性要求: 1、兩個操作數的尺寸必須一致; 2、操作數不能同為內存. --------------------------------------------------------------------------------------------------------------- ;mov ;該指令不影響 EFlags ;指令格式: (其中的 r、m、i 分別表示: 寄存器、…

SQL Server 中關于 @@error 的一個小誤區

SQL Server 中關于 error 的一個小誤區 原文:SQL Server 中關于 error 的一個小誤區在SQL Server中&#xff0c;我常常會看到有些前輩這樣寫&#xff1a; if(error<>0)ROLLBACK TRANSACTION T elseCOMMIT TRANSACTION T 一開始&#xff0c;我看見別人這么寫&#xff0c;我…

Win32ASM學習[11]:邏輯運算

--------------------------------------------------------------------------------------------------------------------------- 一.邏輯與運算指令 AND 格式: AND OPRD1,OPRD2其中目的操作數OPRD1為任一通用寄存器或存儲器操作數.源操作數OPRD2為立即數、任一通用寄存器…

JavaScript消息框

1.警告框 function myTest(){alert("這里的內容會彈出");} 2.確認框 其返回的值是 true 或 false 。 function myTest(){confirm("這里的內容會彈出");} 3.提示框 prompt prompt(參數1&#xff0c;參數2)&#xff1a;其參數1 是顯示提示要輸入的信息&…