欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 面向?qū)ο笮〗馕?/h3>
admin
2024年1月30日 16:7 本文熱度 654

下來(lái)我們開(kāi)始了解C#的面向?qū)ο蠓矫嬷R(shí),首先來(lái)認(rèn)識(shí)一下面向?qū)ο蟆?br style=";padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible"/>

    面向?qū)ο?/strong>:

   面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,OOP)是一種計(jì)算機(jī)編程架構(gòu)。OOP的一條基本原則是計(jì)算機(jī)程序由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。OOP達(dá)到了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。OOP=對(duì)象+類(lèi)+繼承+多態(tài)+消息,其中核心概念是類(lèi)和對(duì)象。
                            --- 百度百科

    通過(guò)百度百科來(lái)看,發(fā)現(xiàn)這說(shuō)的是個(gè)神馬玩意兒,還是給一個(gè)切實(shí)生活的例子來(lái)看,以洗衣服為例,設(shè)定兩個(gè)對(duì)象,一個(gè)是洗衣機(jī),一個(gè)是人,人去完成洗衣服這個(gè)動(dòng)作,對(duì)于洗衣機(jī)有以下方法:洗衣服方法,脫水方法,烘干方法。對(duì)于人有以下方法:加衣服方法,加洗衣粉方法,按啟動(dòng)按鈕方法。

    然后開(kāi)始執(zhí)行這個(gè)流程:人加衣服--人加洗衣服--人按啟動(dòng)按鈕--洗衣機(jī)洗衣服--洗衣機(jī)脫水--洗衣機(jī)烘干,通過(guò)一個(gè)個(gè)方法來(lái)完成洗衣服這個(gè)流程,簡(jiǎn)單來(lái)說(shuō)就是某個(gè)對(duì)象執(zhí)行某個(gè)動(dòng)作完成某件事,而不是直接一步步執(zhí)行方法,那是面向過(guò)程。

    面向?qū)ο笥腥筇匦裕悍庋b,繼承,多態(tài),在文章中會(huì)體現(xiàn)出來(lái)。

    對(duì)于面向?qū)ο蟮母怕视辛舜致缘牧私?,接下?lái)先來(lái)了解如何檢測(cè)異常

    異常處理

    異常就是程序中有語(yǔ)法錯(cuò)誤或者用戶(hù)輸入錯(cuò)誤等等,這會(huì)導(dǎo)致程序無(wú)法運(yùn)行,首先系統(tǒng)有它自己的異常處理方法,例如下面我定義了一個(gè)變量stu,類(lèi)型為string,但我賦給它一個(gè)int類(lèi)型數(shù)據(jù),系統(tǒng)直接報(bào)錯(cuò),說(shuō)無(wú)法給stu一個(gè)int類(lèi)型數(shù)據(jù)。

    當(dāng)我們想完成一個(gè)兩個(gè)數(shù)加法運(yùn)算,讓用戶(hù)輸入數(shù)據(jù),來(lái)執(zhí)行加法,首先我們知道C#輸入只能是字符串類(lèi)型,要利用Convert來(lái)將string類(lèi)型轉(zhuǎn)為值類(lèi)型來(lái),而在輸入時(shí),如果用戶(hù)輸入錯(cuò)誤,輸入的不是數(shù)字,那程序就直接結(jié)束并報(bào)錯(cuò),如下所示:

    而我們可以利用異常處理語(yǔ)句來(lái)讓程序遇到錯(cuò)誤時(shí)對(duì)錯(cuò)誤進(jìn)行解決,來(lái)完成下一步動(dòng)作,異常處理語(yǔ)句有以下三個(gè)關(guān)鍵詞:try,catch,finally

try:一個(gè) try 塊標(biāo)識(shí)了一個(gè)將被激活的特定的異常的代碼塊。后跟一個(gè)或多個(gè) catch 塊。(就是可能出現(xiàn)異常的代碼)

catch:程序通過(guò)異常處理程序捕獲異常。(就是要捕獲哪方面異常)

finally:執(zhí)行給定的語(yǔ)句,不管異常是否被拋出都會(huì)執(zhí)行。


try
{
    // 可能會(huì)異常的語(yǔ)句
}
catch(ExceptionName e)
{
    // 處理方法
}
finally
{
    // 執(zhí)行語(yǔ)句
}


    關(guān)于有哪些異常我們來(lái)看菜鳥(niǎo)教程:異常類(lèi)主要來(lái)自System.Exception類(lèi),所以Exception就包含所有可能的異常。

    下面我們就利用異常處理來(lái)完成對(duì)加法運(yùn)算異常的檢測(cè),讓程序在遇到異常時(shí)不是直接結(jié)束程序,而是解決異常,繼續(xù)執(zhí)行程序。

 Console.WriteLine("請(qǐng)輸入兩個(gè)數(shù)字,空格隔開(kāi)"); string[] array = new string[2]; int a1 = 0; int a2 = 0;
while (true) {     try     {         array = Console.ReadLine().Split(" ");         a1 = Convert.ToInt32(array[0]);         a2 = Convert.ToInt32(array[1]);         break;         /*          *  try會(huì)一句一句檢查是否出現(xiàn)異常          *  當(dāng)檢測(cè)到a1有異常它就不會(huì)執(zhí)行a2,直接執(zhí)行catch          *  當(dāng)兩個(gè)都沒(méi)有異常就直接跳出循環(huán)執(zhí)行后面的語(yǔ)句          */     }     catch (Exception e)     {         Console.WriteLine("要輸入兩個(gè)數(shù)字哦,請(qǐng)重新輸入!");     } }
Console.WriteLine(a1 + " * " + a2 + " = " + (a1 + a2));


    如果有finally語(yǔ)句就是以下效果:

finally
{
    Console.WriteLine("管你有沒(méi)有異常,我就要輸出");
}


    可以發(fā)現(xiàn)當(dāng)有異常時(shí),系統(tǒng)除了會(huì)輸出處于catch和finally中的語(yǔ)句外,不會(huì)執(zhí)行其他的語(yǔ)句,當(dāng)沒(méi)有異常時(shí)才會(huì)接下去執(zhí)行。



    了解完異常處理,接下來(lái)開(kāi)始面向?qū)ο蟮挠嘘P(guān)內(nèi)容,首先是C#中的類(lèi)。

    類(lèi)(Class:

    當(dāng)你定義一個(gè)類(lèi)時(shí),你定義了一個(gè)數(shù)據(jù)類(lèi)型的藍(lán)圖。這實(shí)際上并沒(méi)有定義任何的數(shù)據(jù),但它定義了類(lèi)的名稱(chēng)意味著什么,也就是說(shuō),類(lèi)的對(duì)象由什么組成及在這個(gè)對(duì)象上可執(zhí)行什么操作。對(duì)象是類(lèi)的實(shí)例。構(gòu)成類(lèi)的方法和變量稱(chēng)為類(lèi)的成員。                                    --- 菜鳥(niǎo)教程

     類(lèi)的定義

    關(guān)鍵字class,后面接類(lèi)的名稱(chēng),花括號(hào)中為類(lèi)的主體。

    如何創(chuàng)建一個(gè)類(lèi)

    其實(shí)我們創(chuàng)建一個(gè)程序時(shí),就創(chuàng)建了一個(gè)類(lèi),如圖所示,這是一個(gè)剛創(chuàng)建的程序文件,它就自動(dòng)生成一個(gè)名為Program的類(lèi),這個(gè)名字和文件名是一樣的。

    接下來(lái)演示如何創(chuàng)建一個(gè)類(lèi),我們創(chuàng)建一個(gè)名為Car的類(lèi)。

    這樣我們創(chuàng)建好了一個(gè)名為Car的類(lèi),這些using都是會(huì)自動(dòng)生成的,然后我們可以給類(lèi)中添加成員。成員要有訪(fǎng)問(wèn)表示符,默認(rèn)為private(私有的),此時(shí)無(wú)法直接在其他類(lèi)中使用,設(shè)為public(公共的)就可以隨意使用了。

public string brand; // 牌子
public int speed; // 速度
private int maxSpeed; // 最大速度
public string weight; // 重量


    如何使用類(lèi)中的成員:首先要new一個(gè)對(duì)象來(lái)使用這個(gè)類(lèi)。如下所示:

Car car1 = new Car();
car1.brand = "瑪莎拉蒂";
car1.speed = 270;
car1.weight = "1.5T";


    這樣就可以使用類(lèi)中定義的成員了,可以看到里面缺少了maxSpeed這個(gè)成員,因?yàn)樗脑L(fǎng)問(wèn)符為private,所以不能直接使用,要在類(lèi)中去添加方法。如下所示:

public void SetMaxSpeed(int temp) // 得到數(shù)據(jù)
{
    maxSpeed = temp;
}
public int GetMaxSpeed() // 輸出數(shù)據(jù)
{
    return maxSpeed;
}


    這樣就可以使用maxSpeed了,我還在類(lèi)中寫(xiě)了一個(gè)輸出方法,方便我們輸出相關(guān)信息。

    類(lèi)的使用就可以體現(xiàn)出封裝,將我們的一些方法寫(xiě)在一個(gè)程序中,在通過(guò)主程序去調(diào)用這個(gè)類(lèi)中的方法,從而讓主程序顯的更加簡(jiǎn)潔明了。

    構(gòu)造函數(shù)

    構(gòu)造函數(shù)是類(lèi)中一個(gè)特殊的成員函數(shù),構(gòu)造函數(shù)的定義沒(méi)有返回類(lèi)型。定義構(gòu)造函數(shù)后,每在主程序中創(chuàng)建一個(gè)新的對(duì)象就會(huì)使用這個(gè)構(gòu)造函數(shù)。如下所示:

public Car()
{
    Console.WriteLine("我是構(gòu)造函數(shù)");
}


    默認(rèn)的構(gòu)造函數(shù)是沒(méi)有參數(shù)的,如果加上參數(shù)就可以為你的成員進(jìn)行初始化,如下所示:

public Car(int speedA)
{
    speed = speedA;
    Console.WriteLine("對(duì)象創(chuàng)建成功,速度默認(rèn)為 = {0}", speedA);
}


    屬性

    屬性主要用于外部來(lái)訪(fǎng)問(wèn)和使用內(nèi)部的私有成員變量,例如我們上面要使用maxSpeed變量,要定義兩個(gè)方法才能使用這個(gè)變量,而使用屬性就可以只定義一個(gè)方法就可以使用了。如下所示:

public int MaxSpeed
{
    get
    {
        return maxSpeed;
    }
    set // 這里默認(rèn)值是value
    {
        maxSpeed = value;
    }
}


car1.MaxSpeed = 325;
Console.WriteLine(car1.MaxSpeed);




今日小題:編寫(xiě)一個(gè)程序,倒序輸出一個(gè)數(shù),不輸出這個(gè)數(shù)開(kāi)始的0和結(jié)束的0,例如00520520  ---> 25025

    我們直接從輸入的最后一個(gè)數(shù)開(kāi)始,利用求余運(yùn)算--"%",來(lái)得到最后一個(gè)數(shù),給他一個(gè)判斷看他是否為0,如果不為0就讓他輸出后續(xù)數(shù)字,設(shè)定一個(gè)標(biāo)志位開(kāi)始為false,判斷最后一個(gè)數(shù)是否為0,為0則不管,不為0則標(biāo)志位為true,循環(huán)條件為p != 0,循環(huán)的最后讓p = p / 10;就使這個(gè)數(shù)不斷減少一位,少到為0時(shí)就表示前面的數(shù)都是0了,就不用管了。

int p = Convert.ToInt32(Console.ReadLine());bool temp = false;while(p != 0){    int n = p % 10;    if(temp == false)    {        if(n != 0)        {            Console.Write(n);            temp = true;        }    }    else    {        Console.Write(n);    }
   p = p / 10;}


    由于輸出是一個(gè)數(shù)一個(gè)數(shù)輸出,所以輸出語(yǔ)句用Write避免換行。




該文章在 2024/1/31 15:55:41 編輯過(guò)

關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved