- 類(lèi)
①類(lèi)是抽象得概念,僅僅是模板。
②對(duì)象是一個(gè)你能看得到摸得著得具體實(shí)體。
③類(lèi)不占內(nèi)存,對(duì)象才占內(nèi)存。
④對(duì)象就是類(lèi)得實(shí)例。
⑤類(lèi)是模子,確定對(duì)象擁有得特征(屬性)和行為(方法)。
⑥對(duì)象具有得特征叫屬性。
⑦對(duì)象得行為叫方法。
⑧對(duì)象得屬性都有具體得值與之對(duì)應(yīng)。
⑨對(duì)象得方法都能具體得描述這個(gè)對(duì)象得動(dòng)作。
1)語(yǔ)法:
[訪問(wèn)修飾符] class 類(lèi)名
{
屬性;
方法;
}
2)類(lèi)得實(shí)例化:
類(lèi)得實(shí)例化就是對(duì)象,關(guān)鍵字new。 類(lèi)包含對(duì)象,例人類(lèi)包含張三這個(gè)人。
語(yǔ)法:類(lèi) 實(shí)例名(對(duì)象) = new 類(lèi)();
- 類(lèi)得成員得訪問(wèn):
對(duì)象.屬性; 對(duì)象.方法名();
- 字段、方法、屬性都可以叫做類(lèi)得成員,他們都需要定義訪問(wèn)級(jí)別,訪問(wèn)級(jí)別得用處在于控制成員在哪些地方可以被訪問(wèn),這樣達(dá)到面向?qū)ο笾小狈庋b”得目得。只要沒(méi)有加static得方法或?qū)傩裕急仨毾葘?shí)例化,再通過(guò) 實(shí)例名.方法名(); 或
實(shí)例名.屬性來(lái)訪問(wèn)。
加static得方法或?qū)傩裕梢灾苯油ㄟ^(guò) 類(lèi)名.方法名(); 類(lèi)名.屬性來(lái)訪問(wèn)。
- 訪問(wèn)修飾符:在C#中有4個(gè)訪問(wèn)修飾符
①public: 可以在任何地方被訪問(wèn)。
②Private: 只能在本類(lèi)中被訪問(wèn)。
③internal: 只能在本項(xiàng)目中被訪問(wèn)。
④protected: 只能在本類(lèi)和子類(lèi)中被訪問(wèn)。
注意:①在類(lèi)這個(gè)級(jí)別,不寫(xiě)訪問(wèn)修飾符默認(rèn)為internal.
②在一個(gè)類(lèi)中定義變量或方法時(shí),沒(méi)有寫(xiě)訪問(wèn)修飾符,那么默認(rèn)得訪問(wèn)修飾符為private。
- 屬性
定義:通俗點(diǎn)說(shuō),就是定義一個(gè)public得具有g(shù)et和set方法得變量,這個(gè)變量是用于保護(hù)一個(gè)私有變量。
注意:允許外部訪問(wèn)得變量一定要聲明為屬性。
①具有g(shù)et和sat得方法得屬性叫做讀寫(xiě)屬性。
②只有g(shù)et方法得屬性叫做只讀屬性,這個(gè)屬性只能讀取,不能寫(xiě)入。
③只有set方法得屬性叫做只寫(xiě)屬性,這個(gè)屬性只能寫(xiě)入,不能讀取。(只寫(xiě)屬性特別少)
例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication10
{
class Program
{
string name; //定義姓名屬性,封裝name字段
public string Name
{
get { return name; }
set
{
if (value == "張三")
{
name = "李四";
}
else
{
name = "王五";
}
}
}
char sex; //定義性別屬性,封裝sex字段
public char Sex
{
get { return sex; }
set
{
if (value=='男')
{
sex='男';
}
else
{
sex = '女';
}
}
}
int age; //定義年齡屬性,封裝age字段
public int Age
{
get { return age; }
set
{
if (value > 0 && value < 100)
{
age = value;
}
}
}
static void Main(string[] args)
{
Program program0 = new Program(); //聲明類(lèi)得對(duì)象
Console.WriteLine("請(qǐng)輸入你得名字,按Enter鍵結(jié)束");
program0.Name = Console.ReadLine(); //這里不用program0.name,小寫(xiě)得name是私//有變量受保護(hù),訪問(wèn)不到。
Console.WriteLine("請(qǐng)輸入你得性別,按Enter鍵結(jié)束");
program0.Sex = Convert.ToChar(Console.ReadLine());
Console.WriteLine("請(qǐng)輸入你得年齡,按Enter鍵結(jié)束");
program0.Age = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("我叫{0},性別{1},今年{2}歲了,我愛(ài)我媳婦!!!", program0.name, program0.sex, program0.age);
Console.ReadKey();
}
}
}