什么是類,什么是對象?
c語言:int a=10;
- int表示整數(shù)類,這是系統(tǒng)自帶的一個類,a是這個類的一個對象。
- float,char都是系統(tǒng)自帶的類。
面向對象的編程
1.創(chuàng)建自己的類
2.創(chuàng)建自己的對象
3.舉例:學生類:student。對象張三李四,比如int a;int b。
如何創(chuàng)建自己的類
1.形式:
class student //這個大括號里的叫類的定義
{
string name; //學生的名字
int age; //學生的年齡
}
- 類名:student
- 類里兩個內容,年齡,名字,叫做類的成員數(shù)據(jù),或者叫屬性,類比int a=10;10就是a的屬性,
- 到這為止,類和c語言的結構體還是一樣的。
公有和私有的初步概念
在類的定義里,形式如
class student //這個大括號里叫做類定義
{
public:
string name;
private:
int age;
}
- name公有
類的外部(主函數(shù)里或者其他類)可以讀寫name的值 - age私有
類的外部外面看不到 - 可以只有public
可以將名字和年齡都寫在public,初學者可以先不寫private。
沒有private的類相當于結構體
如何使用一個類
- 類被重新定義后,就創(chuàng)建類的對象,形式和int a一樣;
student aa;
創(chuàng)建一個student類的對象,名字叫aa
aa.age=20;
給aa的屬性賦值,和結構體一樣
什么是成員函數(shù)
成員函數(shù)的重載
和c語言一樣,成員函數(shù)也可以重載。
==不同函數(shù)可以有相同的函數(shù)名,通過不同的輸入?yún)?shù)來識別。函數(shù)的重載。==
class student
{
public:
int age;
string name;
bool set(int a);//兩個函數(shù)名字一樣,但輸入格式不一樣
bool set(string a);//這兩個函數(shù)定義略過,name=a;return true即可。
}
第一階段總結
1.類(學生,類定義里要寫成員和方法的聲明)
2.對象(aa)
3.成員數(shù)據(jù)(年齡和名字,又叫屬性)
4.成員函數(shù)(set,給年齡賦值,又叫方法,具體內容寫在類的外面)一個面向對象的代碼最少有三部分
1.類的定義;
2.成員函數(shù)的定義;
3.創(chuàng)建對象然后調用方法;
構造函數(shù)
student aa,創(chuàng)建aa對象,aa有默認值嗎?
如果有構造函數(shù),那aa就有默認值。為什么要構造函數(shù)?
建立一個對象aa,要給他的年齡和名字分別賦值,那就要寫兩行代碼set(“張三”);set(20),使用構造函數(shù)后,即使你有再多的成員數(shù)據(jù),不用一一寫出。只用寫set(aa)即可。
==構造函數(shù)的本質即對象初始化。==構造函數(shù)的名字必須和類的名字一樣。