OOP面向?qū)ο螅ǚ庋b,參數(shù)傳遞,繼承)

封裝


oop三大特征之封裝
?*
?*
?*為什么要封裝?
?*?屬性存在的目的其實就是為了保護類的內(nèi)部結(jié)構(gòu)不被破壞,達到封裝性
?*?屬性的語法格式為:
?*?訪問修飾符public(必須滴)+對應(yīng)字段的數(shù)據(jù)類型+字段名稱(首字母必須大寫)
?*?{
?*?
?*?}
?*?屬性本身就是一種特殊的方法,他沒有返回值是因為屬性內(nèi)部提供了可以訪問該屬性的訪問器
?*?
?*?ref參數(shù):將值類型引用改變?yōu)榈刂芬?br> ?*?
?*?值類型作為參數(shù)傳遞是,傳遞的不是本身,而是副本,此時要想修改本身的值,要將值類型改為引用類型
?*?
?*?string雖然本身是引用類型,但是作為參數(shù)哦傳遞的時候,默認是值類型,而不是引用傳遞,這就需要我們
?*?如果想改變原來的字符串,這個時候要將值類型改為引用類型,加上ref關(guān)鍵字
?*?如果不想改變,就用原來的字符串,直接傳遞字符串
?*?
?*?object本身就是引用類型,他和字符串不一樣,默認就是引用類型,也就是傳遞的是地址
?*?數(shù)組作為參數(shù)進行傳遞,也是引用傳遞
?*?
?*?out參數(shù):輸出到
?*?其實就是保存一個數(shù)值在其中
?*?

冒泡排序


public?static?void?MAp(int?[]?Arr){
????????????int?sum=0;
????????????for?(int?j?=?0;?j?<?7;j++)?{
????????????????for?(int?i?=?0;?i?<?7- j -1;?i++)?{
????????????????????
????????????????
????????????????????if?(Arr?[i]>?Arr?[i?+?1])?{
????????????????????????sum?=?Arr?[i?];
????????????????????????Arr?[i]?=?Arr?[i?+?1];
????????????????????????Arr?[i?+?1]?=?sum;
????????????????????}
????????????????}
????????????????Console.WriteLine?();
????????????}
????????????foreach?(var?item?in?Arr)?{
????????????????Console.WriteLine?(item);
????????????}
????????}

//將冒泡排序封裝成方法,在Main方法中遍歷輸出結(jié)果
????????????//編寫一個方法,功能是打印數(shù)組里的元素
????????????int[]?Arr?=?{?1,?2,?5,?8,?3,?5,6?};
????????????MainClass.MAp(Arr);


英雄類

class?Yinxon{
????????????
????????????private?string?name="亞瑟";
????????????private?string?dw="坦克";
????????????private?string?tc="先手";
????????????private?int?sld;
????????????private?string?scnl="89";
????????????private?string?gjsh="320";
????????????private?string?jnxg="100%";
????????????private?string?ssnd="容易上手";


????????????public?string?Name
????????????{
????????????????get{?
????????????????????return?name;
????????????????}????
????????????}
????????????public?string?Dw
????????????{
????????????????get{?
????????????????????return?dw;
????????????????}????
????????????}
????????????public?string?Tc
????????????{
????????????????get{?
????????????????????return?tc;
????????????????}????
????????????}


????????????public?int?Sld
????????????{
????????????????set{?
????????????????????sld=value;
????????????????????Console.WriteLine?("熟練度{0}",sld);
????????????????}
????????????????get{?
????????????????????return?sld;

????????????????}????
????????????
????????????}
????????????public?string?Scnl
????????????{

????????????????get{?
????????????????????return?scnl;
????????????????}????
????????????}
????????????public?string?Gjsh
????????????{????
????????????????get{?
????????????????????return?gjsh;
????????????????}????
????????????}
????????????public?string?Jnxg
????????????{????
????????????????get{?
????????????????????return?jnxg;
????????????????}????
????????????}
????????????public?string?Ssnd
????????????{????
????????????????get{?
????????????????????return?ssnd;
????????????????}????
????????????}

Yinxon?y=new?Yinxon();
????????????y.Sld=100;?
????????????Console.WriteLine?("英雄名:{0}",y.Name);
????????????Console.WriteLine?("定位:{0}",y.Dw);
????????????Console.WriteLine?("特長:{0}",y.Tc);
????????????Console.WriteLine?("生存能力:{0}",y.Scnl);
????????????Console.WriteLine?("攻擊傷害:{0}",y.Gjsh);
????????????Console.WriteLine?("技能效果:{0}",y.Jnxg);
????????????Console.WriteLine?("上手難度:{0}",y.Ssnd);

參數(shù)傳遞

//驗證值類型
????????public?static?void?Swap(ref?int?a,ref?int?c)
????????{
????????????int?temp=0;
????????????temp=a;
????????????a?=?c;
????????????c?=?temp;

????????}

????????//驗證字符串
????????public?static?void?Append(string?str)?
????????{
????????????str="你好"+str;
????????????Console.WriteLine?(str);
????????}
????????//驗證引用類型
????????public?static?void?Update(Student1?s6)

????????{
????????????s6.name="張三";

????????}


????????//驗證數(shù)組
????????public?static?void?UpdateArr(int?[]?intArr)
????????{
????????????intArr[0]=100;
????????}

//?演示1?整形傳遞
????????????int?a=10;
????????????int?c=9;
????????????MainClass.Swap(ref?a,ref?c);
????????????Console.WriteLine?("{0}???{1}",a,c);?

????????????//演示2?字符串傳遞
????????????string?s1="中國";
????????????MainClass.Append(s1);
????????????Console.WriteLine?(s1);

????????????//演示三:對象傳遞

????????????Student1?s6?=?new?Student1?();
????????????s6.name="李四";
????????????MainClass.Update?(s6);
????????????Console.WriteLine?(s6.name);

????????????//演示4?數(shù)組傳遞
????????????int?[]?intArr={1,2};
????????????MainClass.UpdateArr?(intArr);
????????????foreach?(var?item?in?intArr)?{
????????????????Console.WriteLine?(item);
????????????}

繼承

? *繼承:
?*繼承使用條件:到你在設(shè)計類的時候,發(fā)現(xiàn)有字段相同
?*????????????????具有相同特征不同行為的可以抽取出來,單獨稱為一個類,這個類供派生類使用
?*????????????????簡稱;基類
?*?
?*?
?*?在現(xiàn)實生活中繼承的關(guān)系橫多
?*?1.兒子繼承父親
?*?2.黃燜雞米飯
?*?.......
?*?
?*?在程序中使用關(guān)鍵符號:表示繼承
?*?格式:(:+類)
?*?這個類是指繼承的類
?*?
?*?繼承類的特點
?*?1.子類可以繼承父類中的公有字段
?*?2.子類可以繼承父類的公開屬性
?*?3.子類可以繼承父類中的公開方法
?*?4.父類不能擁有子類的字段、方法、屬性、索引器
?*?5.在C#中不支持多重繼承,也就是一個類只能繼承一個類,如果你想支持多重繼承,那么請使用接口Iterface
?*?6.繼承關(guān)系中的構(gòu)造函數(shù)(重點)
?*?1.在繼承關(guān)系中首先會調(diào)用父類的構(gòu)造函數(shù),然后在調(diào)用子類的構(gòu)造函數(shù)
?*?2.在繼承關(guān)系中子類初始化對象的時候縣調(diào)用父類的構(gòu)造函數(shù),然后再看子類構(gòu)造函數(shù)有沒有顯示
?*?????通知編譯器指定調(diào)用父類的哪個構(gòu)造函數(shù),如果沒有,那么默認去調(diào)用父類中的無慘構(gòu)造函數(shù)
?*?????此時如果父類重寫了帶有參數(shù)的構(gòu)造函數(shù),程序編譯不會通過,那么解決辦法就是給父類添加構(gòu)造函數(shù)
?*?????或者在子類構(gòu)造函數(shù)中聲明指定調(diào)用父類的哪個構(gòu)造函數(shù)

//定義一個父類Hero

public?class?Hero
????{
????????//字段
????????public?string?hero_Name;
????????public?string?hero_Ding;
????????public?string?hero_Te;
????????public?string?hero_Ext;
????????public?string?hero_Live;
????????public?string?hero_Hurt;
????????public?string?hero_Effect;
????????//public?string?hero_Operation;
????????//私有字段
????????private?string?_hero_Operation;

????????public?Hero()
????????{
????????????Console.WriteLine?("構(gòu)造函數(shù)1");
????????}
????????public?Hero(string?hero_Name,int?hero_Ding)
????????{
????????????this.hero_Name=hero_Name;
????????????Console.WriteLine?();
????????????Console.WriteLine?("構(gòu)造函數(shù)2");
????????}

????????//屬性

????????public?string?Hero_Operation
????????{
????????????set{?
????????????????Console.WriteLine?(value);
????????????????_hero_Operation?=?value;
????????????}
????????????get?{?
????????????????return?_hero_Operation;
????????????}

????????}
????????//行為
????????public?void?Baoji()
????????{
????????????Console.WriteLine?("暴擊效果");
????????}
????????//行為1?
????????private?void?Baoji2()
????????{
????????????Console.WriteLine?("暴擊效果2");
????????}
????}
????class?Hero2
????{
????????
????}
????class?Hero_MonKey:Hero
????{
//????????public?string?name;?
//????????public?int?age;?


????????public?Hero_MonKey(string?name,int?age):base(name,age)
????????{
????????????Console.WriteLine?(name);
????????}
????????public?static?void?Main()
????????{
//????????????Hero_MonKey?hm?=?new?Hero_MonKey?();
//????????????hm.hero_Name="111";
//????????????hm.Hero_Operation?=?"222";
//????????????hm.Baoji?();
????????????Hero_MonKey?h?=?new?Hero_MonKey?("XXX",19);?
????????????Console.WriteLine?(h);
????????
????????}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,743評論 2 370

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