1.1、類的概念:類是乙個模板,確定了乙個物件應該有的屬性與方法,簡單理解就是屬性相當於乙個人的特徵,而方法相當於乙個人的行為,在資源管理器中新增新類
1.2、在新建好乙個類後在類之前新增乙個public
1.3、類的語法
[訪問修飾符] class 類名
訪問修飾符:public
類名:書寫規則是要求每個單詞的首字母都要大寫
1.4、類的例項化(建立物件):我們寫好乙個類之後,需要建立這個類的物件
使用關鍵字new來建立,必須寫在main函式中
類名 物件名=new 類名();
1.5、字段:在類中儲存資料 寫法:修飾符 _欄位名
給新建物件賦值:新建物件名. _欄位名()
1.6、類中的成員如果不加訪問修飾符,預設是private
private:私有的,表明只能在類的內部訪問,出了這個類之後,
就訪問不到了,若想在類外訪問就要加public
在類中寫的方法,若有static則為靜態方法,沒有則非靜態
1.7、在類中寫方法若想輸出物件的值:this._欄位名(this表示當前這個類的物件,this的作用是用來輸出欄位的值)
1.8、類是不佔記憶體的,而物件是佔記憶體的
下面是例題**
person**塊
namespace 第九天練習**
}}
program**塊
class program
}
2.1、在乙個類中應該給每個欄位都去配備乙個屬性,屬性就是為了保護字段,對字段的取值和設定進行乙個設定,那麼相應的在宣告欄位時就不能新增public,是為了保證資料是乙個隱私狀態,而在第一節中新增了public是因為當時沒有引入類的屬性,那麼相應了在類的方法中賦值要改為this.屬性名,屬性的本質是由於兩個方法組成的
屬性的語法:
public string 命名
當取值時用get方法
set 當給屬性賦值時用set方法
}2.2、字段就是女人,屬性就是男人。說明屬性是為了保護字段
person **塊
public class person
set
}int _age;
public int age
get
}char _gender;
public char gender
get
} public void
sayhello()
}
program**塊
person aperson=new person()
; aperson.age =18;
aperson.gender =
'男';
aperson.name =
"張三"
; aperson.
sayhello()
; console.
readkey()
;
2.3、屬性分為三種
既有get方法也有set方法的屬性我們稱之為可讀可寫屬性
只有get方法沒有set方法我們稱之為唯讀屬性
只有set方法沒有get方法我們稱之為只寫屬性
2.4、當輸入的值出現異常時,可以在get,set方法中新增判斷語句,通常只在其中之一新增判斷語句
2.5、類的練習題:student
定義乙個學生類,有六個屬性,分別為姓名、性別、年齡、語文、數學、英語成績。
有2個方法:
乙個打招呼的方法:介紹自己叫xx,今年幾歲了。是男同學還是女同學。
兩個計算自己總分數和平均分的方法。
實化兩個物件並測試:
張三 男 18 三科成績為:90 95 80
小蘭 女 16 三科成績為:95 85 100
3.1、主要作用就是對,物件進行初始化(在類中來建立)
3.2、建構函式其實就是乙個函式,只不過是乙個特殊的函式。
語法:public 建構函式名(傳入引數:資料型別 欄位名)
沒有返回值,連void都不能寫,建構函式的名稱必須和類名一致
3.3、呼叫建構函式
new的作用:
1)、在記憶體的堆中開闢空間
2)、在開闢的堆空間中建立物件
3)、呼叫物件的建構函式
3.4、在建立建構函式之後,就可以在建立類的物件中填入所需要的資料
類名 物件名=new 類名(欄位的資料);
而這樣做就可以避免重複呼叫屬性來輸入資料
3.5、1)、可以過載(方法的名稱相同但方法的引數不同,引數個數相同但型別不同或引數型別相同但個數不同 )
2)、類中缺省會有乙個無引數的建構函式,當你寫了乙個新的建構函式後,那個預設的無引數的
建構函式就被乾掉了
4.1、值型別:int double char bool decimal struct enum
引用型別:string 陣列 自定義類
4.2、常用的記憶體:堆 棧 靜態儲存區域
值型別是存在棧中,引用型別是存在棧中
5.1、靜態成員需要被static修飾,非靜態成員不需要加static。
5.2、問題1:在乙個非靜態類中,是否允許出現靜態成員?
答:非靜態類中是可以出現靜態成員的。
問題2:在非靜態函式中,能不能夠訪問到靜態成員?
答:在非靜態函式中,既可以訪問到非靜態成員,也可以訪問到靜態成員。
問題3:在靜態函式中,能不能夠訪問到非靜態成員?
答:靜態方法只能夠訪問到靜態成員。
問題4:在靜態類中能否出現非靜態成員?
答:不可以,在靜態類中,只允許出現靜態成員。
5.3、在呼叫上,靜態和非靜態的區別
1、在呼叫例項成員的時候,需要使用物件去呼叫
2、在呼叫靜態成員的時候,必須使用類名.靜態成員名;
3、靜態類是不允許建立物件的
6.1、gc gargbage collection
當我們程式結束之後,gc會掃瞄整個記憶體,發現,如果有的空間沒有被指向,
則馬上自動把這塊空間銷毀。
問題:寫乙個ticket類,有乙個距離屬性(本屬性唯讀,在構造方法中賦值),不能為負數,有乙個**屬性,**屬性唯讀,並且根據距離distance計算**price (1元/公里):
0-100公里 票價不打折
101-200公里 總額打9.5折
201-300公里 總額打9折
300公里以上 總額打8折
有乙個方法,可以顯示這張票的資訊.
測試上面的類
ticked類**塊
class ticked
}//建構函式
public ticked
(double distance)
this._distance = distance;
}double _price;
public double price
else
if(_distance>=
101&&_distance<=
200)
else
if(_distance >=
201&& _distance <=
300)
else}}
public void
showticket()
公里需要元"
, this.distance, this.price);}
}
program**塊
class program
}
8.1、在乙個專案中引用另乙個專案的類的步驟
1、新增要引用的類所在的專案。
2、引用命名空間(在最上端using處新增using namspace後面的**;)
8.2、訪問修飾符
public :公開的,公共的
private:私有的,只能在類的內部訪問,出了這個類之後,就訪問不到了。
能夠修飾類的訪問修飾符只有兩個:
1)、public
2)、internal:表示只能在當前程式集的內部進行訪問,出了這個程式集就訪問不到啦。
對於咱們而言,現階段就將程式集理解為當前專案。
物件導向 類與物件
物件導向是相對於面向過程而言的,具體的來說,比如 我們想要吃一頓午飯,我們親自買菜,洗菜.切菜,炒菜,煮飯,這樣做成一桌菜就叫面向過程,也就是說整個過程 你都親自完成,而 物件導向呢?點外賣 點一桌子菜和公尺飯 不管他咋做出來的 面向過程程式設計 就是 我們想要實現乙個功能 直接去呼叫別人寫好的功能...
物件導向(類與物件)
世界上肯定是先出現各種各樣的實際存在的物體,然後隨著人類文明的發展,人類站在不同的角度總結出了不同的種類,比如 人類 動物類 植物類等概念。也就說,物件是具體的存在,而類僅僅只是乙個概念,並不真實存在,比如你無法告訴我人類 具體指的是哪乙個人這與函式的使用是類似的 先定義函式,後呼叫函式,類也是一樣...
物件導向 類與物件
1.物件導向的三大特徵 1 封裝性 2 繼承性 3 多型性 物件導向最大的特徵 可以對現實生活進行抽象 2.基本概念 1 類 指共性的概念 2 物件 指的是乙個具體的,可以使用的事物。通俗來說,類就是產生物件的藍圖。物件的所有行為,一定要在類中進行完整的定義。類中的組成 屬性 方法 class 類名...