c#面向?qū)ο?--構(gòu)造函數(shù)/new/this/析構(gòu)函數(shù)/屬性只讀/namespace/值類(lèi)型引用類(lèi)型/字符串

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

  • 類(lèi)名首字母大寫(xiě)
  • 構(gòu)造函數(shù):可以用來(lái)創(chuàng)建對(duì)象犹菇,并在構(gòu)造函數(shù)中對(duì)對(duì)象進(jìn)行初始化(簡(jiǎn)化初始化過(guò)程--給對(duì)象的每個(gè)屬性賦值)仔燕;構(gòu)造函數(shù)可以有重載螟蝙;類(lèi)本身會(huì)有一個(gè)默認(rèn)的、無(wú)參的構(gòu)造函數(shù)扼褪,當(dāng)你寫(xiě)了一個(gè)(有參或者無(wú)參的構(gòu)造函數(shù)時(shí))想幻,默認(rèn)的無(wú)參的構(gòu)造函數(shù)都被干掉了;
  • 構(gòu)造函數(shù)是一個(gè)特殊的方法
    1)構(gòu)造函數(shù)沒(méi)有返回值话浇,連void也沒(méi)有
    2)構(gòu)造函數(shù)名必須與類(lèi)名一致
    3)構(gòu)造函數(shù)的訪(fǎng)問(wèn)修飾符必須是public(若是private脏毯,則創(chuàng)建對(duì)象時(shí)無(wú)法對(duì)對(duì)象進(jìn)行初始化)
    4)創(chuàng)建對(duì)象的時(shí)候會(huì)執(zhí)行構(gòu)造函數(shù)


    沒(méi)有構(gòu)造函數(shù)時(shí)對(duì)對(duì)象初始化
有構(gòu)造函數(shù)--構(gòu)造函數(shù)寫(xiě)法

有構(gòu)造函數(shù)--使用構(gòu)造函數(shù)初始化對(duì)象

2.new關(guān)鍵字

  • new關(guān)鍵字
    Person zsPerson = new Person();
    new幫助我們做了三件事:
    1)在內(nèi)存中開(kāi)辟一塊空間
    2)在開(kāi)辟的空間中創(chuàng)建對(duì)象
    3)調(diào)用對(duì)象的構(gòu)造函數(shù)初始化對(duì)象

3.this關(guān)鍵字

  • this關(guān)鍵字
    1)代表當(dāng)前類(lèi)的對(duì)象
    2)在類(lèi)當(dāng)中顯示地調(diào)用本類(lèi)的構(gòu)造函數(shù)(:this)
    有參數(shù)的地方直接用參數(shù)(如name幔崖,chinese等)食店,沒(méi)有參數(shù)的地方賦默認(rèn)的初值(如0,‘男’)


    在類(lèi)當(dāng)中顯示地調(diào)用本類(lèi)的構(gòu)造函數(shù)具體寫(xiě)法

    3)使用this可以區(qū)分局部變量和屬性


    使用this可以區(qū)分局部變量和屬性

4.析構(gòu)函數(shù)

  • 析構(gòu)函數(shù)
    格式:~析構(gòu)函數(shù)名(){ }
    1)當(dāng)程序結(jié)束時(shí)赏寇,析構(gòu)函數(shù)才執(zhí)行叛买,用于幫助我們釋放資源(c#使用了GC垃圾回收器默認(rèn)幫我們釋放資源)
    2)如果想立刻釋放資源,自己顯示的寫(xiě)一個(gè)析構(gòu)函數(shù)

5.屬性只讀

實(shí)戰(zhàn):屬性若是只讀不可寫(xiě)的蹋订,那么通過(guò)字段來(lái)改變參數(shù)的值率挣,傳入?yún)?shù)可用構(gòu)造函數(shù)


實(shí)戰(zhàn)

6.命名空間

  • 命名空間
    缺少命名空間時(shí)引用命名空間快捷鍵 : ALT+SHIFT+F10然后敲回車(chē);
  • 在一個(gè)項(xiàng)目中引用另一個(gè)項(xiàng)目的類(lèi)
    1)添加引用
    2)引用命名空間


    第一步.1:右鍵引用--點(diǎn)擊“添加引用”

    第一步.2:引用項(xiàng)目“01復(fù)習(xí)”露戒,所以在前面點(diǎn)勾椒功,點(diǎn)擊確定

    第二步:添加命名空間--using 01復(fù)習(xí)

7.值類(lèi)型和引用類(lèi)型

  • 值類(lèi)型和引用類(lèi)型:計(jì)算機(jī)中變量大致可以分為兩類(lèi),數(shù)值型變量和非數(shù)值型的變量智什;對(duì)c#而言动漾,分為值類(lèi)型和引用類(lèi)型兩種;
  • 值類(lèi)型和引用類(lèi)型的區(qū)別:
    1)值類(lèi)型和引用類(lèi)型在內(nèi)存上存儲(chǔ)的地方不一致荠锭;
    2)傳遞值類(lèi)型和引用類(lèi)型的方式不一樣旱眯,值類(lèi)型稱(chēng)之為值傳遞,引用類(lèi)型稱(chēng)之為引用傳遞证九;
    3)值類(lèi)型存儲(chǔ)在內(nèi)存的棧中删豺,引用類(lèi)型存儲(chǔ)在內(nèi)存的堆中;引用類(lèi)型也在棧上開(kāi)辟了空間存儲(chǔ)堆的地址愧怜;


    值傳遞和引用傳遞的存儲(chǔ)區(qū)別
  • 值類(lèi)型:int,double,bool,decimal,char,struct,enum
  • 引用類(lèi)型:string呀页,數(shù)組,自定義類(lèi)和我們使用的所有類(lèi)

8.字符串及相關(guān)函數(shù)

  • 字符串
    特性:
    1)字符串的不可變性拥坛,如下圖所示(當(dāng)你給一個(gè)字符串重新賦值之后蓬蝶,老值并沒(méi)有銷(xiāo)毀,而是重新開(kāi)辟一塊空間存儲(chǔ)新值)
    注:當(dāng)程序結(jié)束時(shí)猜惋,如果發(fā)現(xiàn)內(nèi)存中有空間沒(méi)有任何東西指向它(“如下圖所示的“”張三”)丸氛,此空間會(huì)被GC垃圾回收器刪除;


    字符串不可變性 -- “張三”沒(méi)有消失著摔,“10”消失了

    兩個(gè)字符串內(nèi)容相同時(shí)只開(kāi)辟一塊空間

    驗(yàn)證上圖 -- 1.打開(kāi)“即時(shí)”

    驗(yàn)證上圖 -- 2.在“即時(shí)”窗口里面寫(xiě)上“&s1”回車(chē)缓窜,返回棧地址和堆地址,發(fā)現(xiàn)堆地址相同

    2)可以將字符串看作是char類(lèi)型的一個(gè)只讀數(shù)組(即可以通過(guò)下標(biāo)去訪(fǎng)問(wèn)字符串中的某一個(gè)元素)
    ToCharArray():將字符串轉(zhuǎn)換為char數(shù)組;
    new String(char[] chs):能夠?qū)har數(shù)組轉(zhuǎn)換為字符串雹洗;


    為啥把string當(dāng)成char類(lèi)型的只讀數(shù)組 & 如何改變string里面某個(gè)字符的值(方法一)

    如何改變string里面某個(gè)字符的值(方法二)
  • StringBuilder:綜上所述香罐,如果程序中進(jìn)行大量的拼接會(huì)導(dǎo)致內(nèi)存里垃圾很多,這是可以使用StringBuilder類(lèi)


    (未使用StringBuilder)Stopwatch是一個(gè)計(jì)時(shí)器類(lèi)

    (使用StringBuilder)與上圖的不同用紅線(xiàn)標(biāo)注
  • 字符串的方法
    字符串.Length;是獲取字符串長(zhǎng)度时肿;
    字符串.ToUpper();是將字符串轉(zhuǎn)換成大寫(xiě)庇茫;
    字符串.ToLower();是將字符串轉(zhuǎn)換成小寫(xiě);
    字符串1.Equals(字符串2)螃成;的結(jié)果相當(dāng)于字符串1 == 字符串2旦签;

    填入一個(gè)枚舉類(lèi)型的參數(shù)StringComparison.OrdinalIgnoreCase就可以忽略大小寫(xiě)進(jìn)行比較了

    字符串.Split();用來(lái)分割字符串寸宏,返回的是字符串類(lèi)型的數(shù)組宁炫;
    使用Split()方法干掉不想要的字符后,被干掉的地方顯示null

    注意:這里是string[]數(shù)組氮凝,所以會(huì)存在一項(xiàng)里面存多個(gè)字符(如下標(biāo)為4的項(xiàng)存了“dfd”)
    如何讓上圖被干掉的地方不顯示null羔巢,填入一個(gè)枚舉類(lèi)型的參數(shù)StringSplitOptions.RemoveEmptyEntries

    字符串.Contains();返回值是bool類(lèi)型罩阵,判斷一個(gè)字符串里是否包含()l里出現(xiàn)的字符竿秆;
    字符串.Replace(“被替換文字”,“替換文字”)稿壁;返回一個(gè)字符串幽钢,用來(lái)替換字符串中的某些內(nèi)容;
    字符串.Substring(截取字符串開(kāi)始下標(biāo)【傅是,截取長(zhǎng)度】)匪燕;返回一個(gè)字符串,用于截取字符串中的一部分喧笔;
    字符串.StartsWith(“字符串”)帽驯;返回bool類(lèi)型的變量,判斷一個(gè)字符串是不是以()里的內(nèi)容開(kāi)始溃斋;
    字符串.EndsWith(“字符串”)界拦;返回bool類(lèi)型的變量,判斷一個(gè)字符串是不是以()里的內(nèi)容結(jié)束梗劫;
    字符串.IndexOf(“字符串”【,“搜索起始位置”】)截碴;返回int類(lèi)型的變量梳侨,找到()里的字符在字符串里第一次出現(xiàn)的位置,找不到返回-1日丹;
    注意:“搜索起始位置”是為了找到非第一次出現(xiàn)的字符所在位置走哺,加了“搜索起始位置”這個(gè)選項(xiàng)后搜索時(shí)包括搜索的起始位置;
    字符串.LastIndexOf(“字符串”)哲虾;返回int類(lèi)型的變量丙躏,找到()里的字符在字符串里最后一次出現(xiàn)的位置择示;
    LastIndexOf+Substring組合使用,例如截取地址:
    LastIndexOf+Substring

注意: 1.@符號(hào)的作用:取消\在字符串和路徑中的轉(zhuǎn)義作用
2."\"代表一個(gè)\晒旅,第一個(gè)\是轉(zhuǎn)義符
3.使用index+1栅盲,因?yàn)橐厝〉氖荺后面的內(nèi)容
字符串.Trim(“字符串”);返回一個(gè)字符串废恋,去掉字符串中所有的空格谈秫;
字符串.TrimEnd(“字符串”);返回一個(gè)字符串鱼鼓,去掉字符串中拟烫,尾部的空格;
字符串.TrimStart(“字符串”)迄本;返回一個(gè)字符串硕淑,去掉字符串中,頭部的空格嘉赎;
string.IsNullOrEmpty(“字符串”)置媳;返回一個(gè)bool類(lèi)型的變量,null或者是“”都會(huì)返回true曹阔;
string.Join(“指定分隔字符”半开,“字符或字符數(shù)組”);返回一個(gè)字符串赃份,將指定字符放到每個(gè)數(shù)組元素后面且最后一個(gè)元素后面不放寂拆;執(zhí)行效果如下:

Join()

Join()

9.注意

  • 如何把txt文檔讀到控制臺(tái)上
    1.先拿到控制臺(tái)的路徑string path = @"路徑"
    2.使用File.ReadALLLines(path,Encoding.Default)抓韩;讀取文本中的所有內(nèi)容纠永,返回一個(gè)字符串?dāng)?shù)組;Encoding.Default是用來(lái)處理亂碼谒拴;

  • 能用if-else解決的都可以用三元表達(dá)式來(lái)寫(xiě)尝江;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市英上,隨后出現(xiàn)的幾起案子炭序,更是在濱河造成了極大的恐慌,老刑警劉巖苍日,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惭聂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡相恃,警方通過(guò)查閱死者的電腦和手機(jī)辜纲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人耕腾,你說(shuō)我怎么就攤上這事见剩。” “怎么了扫俺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵苍苞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我牵舵,道長(zhǎng)柒啤,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任畸颅,我火速辦了婚禮担巩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘没炒。我一直安慰自己涛癌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布送火。 她就那樣靜靜地躺著拳话,像睡著了一般。 火紅的嫁衣襯著肌膚如雪种吸。 梳的紋絲不亂的頭發(fā)上弃衍,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音坚俗,去河邊找鬼镜盯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛猖败,可吹牛的內(nèi)容都是我干的速缆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼恩闻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼艺糜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起幢尚,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤破停,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后尉剩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辱挥,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年边涕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡功蜓,死狀恐怖园爷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情式撼,我是刑警寧澤童社,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站著隆,受9級(jí)特大地震影響扰楼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜美浦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一弦赖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浦辨,春花似錦蹬竖、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至揪利,卻和暖如春疏唾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摊滔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工阴绢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惭载。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓旱函,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親描滔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子棒妨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容