OOP(面向對象)

oop:面向對象,全稱叫Object?oriented?programming
?*?面向對象的三大特點:1.封裝,
?*?????????????????????????2.繼承
?*?????????????????????????3.多態
?*?
?*?
?*?類的定義:實際上就是具有相同屬性和特征的一類事物的抽象集合
?*?注意:類是對象的抽象,對象是類的實例
?*?
?*?對向的定義:抽象類的實例
?*?
?*?昨天我去了工商銀行去辦銀行卡,在我前邊有50個人?、、、53
?*?
?*?1.知道了類的定義,如何定義類?
?*?????????使用系統關鍵字:(默認訪問修飾符internal)Class?+類名+{}
?*?????????注意1點:類和類屬于同級關系
?*?2.如何描述類的特征
?*???????叫字段或類成員變量
?*???????字段和普通局部變量的區別,訪問該局部變量時編譯會通過?字段不會
?*?3.實例化對象
?*??????????采用系統關鍵詞new?+?類名()
?*???????new?關鍵字的作用:
?*?????????????1,。開辟一塊內存空間(堆區)
?*?????????????2.在開辟出來的內存空間中存對象信息(字段屬性方法)
?*????????????3.初始化對象(調用構造函數)
?*?
?*?4.如何描述類的行為
?*??????叫方法或者函數
?*?????????語法格式:修飾詞+函數返回值+函數名(方法名)(形參列表)
?*?{
?*?
?*?}
?*?5.修飾符()
?*?????public:公開·的意思,常用于修飾類,修飾類字段,修飾類種方法
?*?????????????????就是非本類之外也可以訪問
?*?????private?:私有的,常用于修飾字段,方法,也是C#中默認的修飾符,
?*?????????????????就是只有本類才可以訪問
?*?????intrnal:程序集內部可以訪問
?*?????protected:基類&&派生類可以訪問
?*?????
?*?6.如果方法又返回值就返回方法的實際類型的返回值,關鍵字:return?+返回內容;
?*?如果方法沒有返回值,就可以省略retrun不寫,直接寫方法體內的方法快即可
?*?
?*?4種方法
?*?有參有返回值
?*?有參無返回值
?*?無參有返回值
?*?無參無返回值
?*?
?*?
?*?7.枚舉變量
?*?格式:enum+枚舉名稱
?*?{
?*?枚舉變量1,
?*??枚舉變量1,
?*??枚舉變量1
?*?}
?*?8.構造函數(重點掌握)
?*?構造函數的作用:讓一個類更完整。
?*?構造函數其實就是用來創建對象,初始化字段用的
?*?構造函數的語法格式為:修飾符+類名
?*?{
?*?}
?*?構造函數的特點:
?*?1,沒有返回值
?*?2,構造函數的名字必須和類名保持一致
?*?3,構造函數支持方法重載,換句話說就是可以有多個構造函數,但參數個數不能相同
?*?4.構造函數無法進行手動調用(系統自動調用)
?*?5.如果類中不包含構造函數,那么系統會自動為該類添加一個無參的構造函數
?*?6.如果類中存在帶有參數的構造函數,那么系統不會為該類添加無慘的構造函數
?*/?

????????? //定義枚舉
?enum?Ge
????{
????????男,
????????女
????}
?? 代碼實現

?????????????????????????????????????????? //學生類
????class?Student{
????????public?int?id;
????????private?string?name;
????????private?string?classshu;
????????private?int?fs;

????????public?Student(int?id,string?name,string?classshu,int?fs)
????????{
????????????this.id?=?id;
????????????this.name?=?name;
????????????this.classshu?=?classshu;
????????????this.fs?=?fs;
????????????Console.WriteLine?("學號為{0}的學生姓名為:{1}??年級為:{2}??分數為:{3}",id,name,classshu,fs);

????????}

????}


????//全真:
????class?Quanzhen{
????????//public?string?name;?
????????public?string?zmname?;
????????public?int?zmage;?
????????//public?string?wdname;?

????????public?Quanzhen(string?zmname,int?zmage)
????????{

????????????this.zmname?=?zmname;
????????????this.zmage?=?zmage;

????????????Console.WriteLine?("全真教掌門名字為:{0}年齡為:{1}",zmname,zmage);

????????}
????????public?Quanzhen(string?wdname,string?name)?
????????{

????????????Console.WriteLine?("武當掌門{0}到{1}來參觀",wdname,name);

????????}


????}
????//武當:
????class?Wudao{
????????//????????public?string?name;?
????????//????????public?string?qzzmname?;
????????//????????public?string?zmname;?
????????//????????public?string?zmage;?

????????public?Wudao(string?zmname,int?zmage)
????????{
????????????Console.WriteLine?("武當教掌門名字為:{0}年齡為:{1}",zmname,zmage);
????????}

????????public?Wudao(string?qzzmname,string?name)
????????{
????????????Console.WriteLine?("全真教掌門{0}到{1}來參觀",qzzmname,name);
????????}


????}
????//丐幫:
????class?Gaibao{
????????//????????public?string?name;?
????????//????????public?string?qzzmname;?
????????//????????public?string?zmname;?
????????//????????public?string?zmage;?

????????public?Gaibao(string?zmname,int?zmage)
????????{
????????????Console.WriteLine?("武當教掌門名字為:{0}年齡為:{1}",zmname,zmage);
????????}

????????public?Gaibao(string?qzzmname,string?name)
????????{
????????????Console.WriteLine?("全真教掌門{0}到{1}來參觀",qzzmname,name);
????????}



????}


????class?Boss
????{
????????public?string?name;
????????//????????public?int?fyl;?
????????//????????public?int?gjl;??
????????//????????public?int?xl;??
????????//????????public?int?mfz;??
????????public?Boss()
????????{

????????}


????????public?Boss(string?name,?int?mfz?)
????????{
????????????this.name?=?name;
????????????Console.WriteLine?("我的名字是:{0}?魔法值為{1}",name,mfz);

????????}

????????public?Boss(string?name,int?fyl,int?xl?)?
????????{

????????????Console.WriteLine?("我的名字是:{0}防御力是{1}血量是{2}",name,fyl,xl);
????????}

????}






????//定義了一個人類


????class?Person
????{
????????//特征

????????//名字
????????public?string?name;??
????????//年齡
????????public?int?age;???
????????//性別
????//????public?string?gender;
????//性別枚舉
????????public?Ge?gender;?
????????//構造函數????
????????public?Person()
????????{
????????????Console.WriteLine?("構造函數");
????????}

????????//This關鍵字:代表這個類的這個函數
????????public?Person(string?name)
????????{
????????????this.name?=?name;
????????????Console.WriteLine?("名字為:{0}",name);
????????}
????}

????class?Boss
????{
????????public?string?name;
????????//????????public?int?fyl;?
????????//????????public?int?gjl;??
????????//????????public?int?xl;??
????????//????????public?int?mfz;??
????????public?Boss()
????????{

????????}


????????public?Boss(string?name,?int?mfz?)
????????{
????????????this.name?=?name;
????????????Console.WriteLine?("我的名字是:{0}?魔法值為{1}",name,mfz);

????????}

????????public?Boss(string?name,int?fyl,int?xl?)?
????????{

????????????Console.WriteLine?("我的名字是:{0}防御力是{1}血量是{2}",name,fyl,xl);
????????}

????}






????//定義了一個人類


????class?Person
????{
????????//特征

????????//名字
????????public?string?name;??
????????//年齡
????????public?int?age;???
????????//性別
????//????public?string?gender;
????//性別枚舉
????????public?Ge?gender;?
????????//構造函數????
????????public?Person()
????????{
????????????Console.WriteLine?("構造函數");
????????}

????????//This關鍵字:代表這個類的這個函數
????????public?Person(string?name)
????????{
????????????this.name?=?name;
????????????Console.WriteLine?("名字為:{0}",name);
????????}
????}


????????//行為?1.....吃
????????public?void?Eat(string?foodname)
????????{
????????????Console.WriteLine?("{0}在吃{1}",name,foodname);
????????
????????}
????????//行為?2
????????public?string?SayHi()
????????{
????????
????????????return?"我是"?+?name?+?"大家好";

????????}
????}
????class?Class1{
????????public?string?name;
????????public?int?renshu;??
????????public?void?Shangke(string?student)
????????{
????????
????????????Console.WriteLine?("班級{0}中李四在上{1}",name,student);?
????????}

????}
????class?Food{
????????public?string?shuigu;
???????public?string?mianshi;?
????????public?string?rou;
????????public?void?Eat1(string?food)
????????{
????????
????????????Console.WriteLine?("食物有{0}張三喜歡吃{1}",shuigu,food);
????????}
????????public?void?Eat2(string?food)
????????{
????????????Console.WriteLine?("食物中{0}李四喜歡吃{1}",rou,food);
????????}
????}




????class?MainClass
????{


????????//練習2:定義一個方法,比較int類型的數據,得到其最大值;
????????public?int?Max(int?i,int?j)
????????{
????????????
????????????if?(i?>?j)?{
????????????????Console.WriteLine?(i);
????????????}?else?{
????????????????Console.WriteLine?(j);
????????????}
????????????return?i>j?i:j;????
????????}
????????public?void?pj(string?a,string??b)
????????{
????????

????????????Console.WriteLine?(a+b);
????????
????????}

????public?int?SumValue(int?n)
????{int?sum=0;
????????for?(int?i?=?1;?i?<=?n;?i++)?{
?????????????sum?+=i;
????????}
????????return?sum;
????}

????????//練習2:定義一個方法,比較int類型的數據,得到其最大值;
////????????????MainClass?m=new?MainClass();
//????????????int?max1=new?MainClass().Max(18,25);?
//????????????Console.WriteLine?(max1);
//????????????//new?MainClass().Max(15,20);
//????????//編寫方法int?SumValue(int?n):計算1-n的和
//????????Console.WriteLine?(new?MainClass().SumValue(100)?);?

????????????//枚舉演示
????????????//訪問枚舉變量是用枚舉名.的方式調用
????????????//在Unity?中枚舉常用來判斷游戲狀態·1(游戲開始,游戲暫停,游戲結束)
????????????Person?p=new?Person();
????????????p.name?=?"劉德化";
????????????????p.age=55;
????????????????p.gender?=?Ge.男;
????????????Person?p1?=?new?Person?("劉德");


????????????//練習1:該類包含一個Boss類,該類包含攻擊力,防御力,血量及魔法值等字段
????????????//包含一個介紹自己的行為比如(我是XXX,我的攻擊力是XXX。。。)
????????????//要求:使用至少3種構造函數對該boss類進行實例化,調用自身的行為
????????????Boss?b=new?Boss();

????????????Boss?b1?=?new?Boss?("李四",120);
????????????Boss?b3?=?new?Boss?("王五",50,90);

????????????//練習2:設計一個學生類,包含學號,姓名,(私有字段),年級(私有字段)




????????????//?練習3.設計全真教,武當,丐幫類
????????????//全真:
????????????//?字段:掌門姓名,掌門年齡
????????????//?方法:介紹全真,武學介紹

????????????Quanzhen?q?=?new?Quanzhen?("李四",50);?
????????????Quanzhen?q1?=?new?Quanzhen?("老王",?"全真");
????????????//武當:
????????????//?字段:掌門姓名,掌門年齡
????????????//?方法:介紹全真,武學介紹
????????????Wudao?w=new?Wudao("老王",60);?
????????????Wudao?w1=new?Wudao("李四","武當");?

????????????//丐幫:
????????????//?字段:掌門姓名,掌門年齡
????????????//?方法:介紹全真,武學介紹
????????????//

????????????Gaibao?g?=?new?Gaibao?("王五",67);
????????????Gaibao?g1?=?new?Gaibao?("李四","丐幫");

????????????//1.分別采用不同的構造方法對門派進行實例化對象
????????????//2.每個門派至少包括1個其他門派掌門人來該門派的訪問信息
????????????//比如:全真包含
????????????//?武當xxx,到本派進行參觀



????????????//練習2.設計一個學生類,包含學號,姓名(私有字段),年級(私有),班級分數(私有)
????????????//通過構造函數可以對學生進行實例化(不能對私有字段賦值)
????????????//通過輸入學號可以獲取該學生的相關信息,比如101,可以顯示101對應的學生姓名年級班級等信息

????????????Student?s?=?new?Student?(101,?"張三",?"SHU",90);?
????????}


????}
}


class?Student{
????????private?string?name;
????????public?string?Name{
????????????get{?
????????????????return?name;
????????????}
????????????set{?
????????????????name?=?value;
????????????}
????????}
????????public?void?A()
????????{
????????????Console.WriteLine?(name);
????????}

????????public?string?xuehao;??
????????public?int?age;??

????}


????class?Class{

????????public?string?name;
????????public?string?clasname;?
????????public?int?rs;??
????????public?string?techname;?
????????public?string?time;?

????????public?Class(string?name)
????????{
????????????this.name?=?name;
????????????Console.WriteLine?("{0}集體活動與開班儀式",name);

????????}
????}

????class?Techer{

????????public?string?name;?
????????public?int?age;????
????????public?string?kc;?
????????public?string?gender;?
????????public?string?classname;?


????????public?Techer()
????????{
????????????Console.WriteLine?("講課、布置作業、驗收作業、解決問題、自我介紹。");

????????}


????}
????class?Student1{

????????public?string?name;?
????????public?int?age;?
????????public?string?kc;?
????????public?string?gender;?
????????public?string?classname;?

????????public?int?xh;?????????
????????public?string?techername;?


????????public?void?Arr(int[]?a,int[]?b)
????????{
????????????Array.Copy?(a,?b,?4);
????????}
????????public?void?Arr1(int?[]ab)
????????{
????????????foreach?(var?item?in?ab)?{
????????????????Console.WriteLine?(item);
????????????}
????????}

????}

????class?MainClass
????{
????????public?static?void?Main?(string[]?args)
????????{
//????????????《第六講:C#語言編程》類
//
//????????
//????????????1.(*)完成課件的練習,建30個類,每個類有自己的特征,為特征填寫Get?方法和Set方法。

????????????Student?s?=?new?Student?();
????????????s.Name="aaaa";
????????????s.A?();


//????????????3.(**)創建一個方法,功能是把一個int類型的數組拷貝到另外一個數組里面,并把數組各元素打印出來;
????????????Student1?s2=new?Student1();
????????????int?[]a={1,2,3,4};
????????????int[]?b?=?new?int[4];
????????????s2.Arr?(a,b);
????????????foreach?(var?item?in?b)?{
????????????????Console.WriteLine?(item);
????????????}


//????????????4.(**)創建一個方法,求一個int類型數組里面元素的和,并把和打印出來;
????????????Student1?s3=new?Student1();
????????????int?[]ab={1,2,3,4,5};
????????????s3.Arr1?(ab);

????????}
????} ????

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

推薦閱讀更多精彩內容