-
將set屬性刪除就是只讀屬性,則Main中不能為屬性賦值了,想要賦值
1.可以得在Child.cs中為字段直接賦值:private string sex="男";同樣的也不能在Main中修改;
2.用構(gòu)造方法
查看全部 -
C#屬性封裝
封裝:隱藏對(duì)象的信息留出訪問的接口
選擇字段名,ctrl+r+e,實(shí)現(xiàn)快速封裝
手動(dòng)封裝:
? ? ?a.將類中該字段public改為private,將字段隱藏起來(lái)
? ? ? b.留出隱藏字段的訪問接口也就是屬性,用 public 定義屬性,且屬性數(shù)據(jù)類型與字段屬性一致,屬性名字也字段名字相近,但要遵循首字母大寫。
? ? ? ? ? ? ?
? ?
? ? ? ? 不設(shè)置set就默認(rèn)只讀
? ? ? ? 在對(duì)象中,封裝的屬性名字會(huì)自動(dòng)改為屬性的名字注意訪問器的花括號(hào){ ;}
namespace Kindergarten
{
? ?/// <summary>
? ?/// 小朋友
? ?/// </summary>
? ?class Child
? ?{//訪問修飾符:public公共的 ? private私有的(默認(rèn)訪問修飾符) ?封裝快捷鍵:Ctrl+R+E
? ? ? ?private string _name;//姓名
? ? ? ?/// <summary>
? ? ? ?/// 姓名
? ? ? ?/// </summary>
? ? ? ?public string Name
? ? ? ?{
? ? ? ? ? ?get{return _name;}
? ? ? ? ? ?set{_name=value;}
? ? ? ?}
? ? ? ?private string _sex;//性別
? ? ? ?public string Sex
? ? ? ?{
? ? ? ? ? ?get { return _sex; }
? ? ? ? ? ?set { _sex = value; }
? ? ? ?}
? ? ? ?private int _age;//年齡
? ? ? ?public int Age
? ? ? ?{
? ? ? ? ? ?get { return _age; }
? ? ? ? ? ?set { _age = value; }
? ? ? ?}
? ? ? ?private int _height;//身高
? ? ? ?public int Height
? ? ? ?{
? ? ? ? ? ?get { return _height; }
? ? ? ? ? ?set { _height = value; }
? ? ? ?}
? ? ? ?/// <summary>
? ? ? ?/// 踢足球
? ? ? ?/// </summary>
? ? ? ?public void PlayBall()
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("耶!我是小小C羅!");
? ? ? ?}
? ?}
}查看全部 -
C#封裝的概念
封裝:①隱藏對(duì)象的信息 ②留出訪問的接口
在C#中,我們常使用屬性對(duì)字段進(jìn)行封裝。*屬性是封裝字段的手段在使用private時(shí),使用get和set就能對(duì)private進(jìn)行訪問
private string _sex;//隱藏的字段
public string Sex//公開的屬性
{
//get、set訪問器
get//只讀
{return _sex;}
set//只寫
{_sex=value;}
}查看全部 -
C#訪問修飾符
? ? ?所有類型和類型成員都具有可訪問性級(jí)別,用來(lái)控制是否可以在您程序集的其他代碼中或其他程序集中使用它們??墒褂靡幌略L問修飾符指定聲明類型或成員時(shí)類型或成員的可訪問性。
public
? ? ?同一程序集中的任何其他代碼或引用該程序集的其他程序集都可以訪問該類型或成員。public?公共的 :可以在其他類中訪問private
? ? ?只有同一類或結(jié)構(gòu)中的代碼可以訪問該類型或成員。private?私有的:不能在其他類中訪問,如沒有設(shè)置訪問修飾符,默認(rèn)為privateprotected
? ? ?只有同一類或結(jié)構(gòu)或者此類的派生類中的代碼才可以訪問的類型或成員。
internal
? ? ?同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集中的代碼不可以。
protected internal
? ? ? 由其聲明的程序集或另一個(gè)程序集派生的類中任何代碼都可訪問的類型或成員。從另一個(gè)程序集進(jìn)行訪問必須在類聲明中發(fā)生,該類聲明派生自其中聲明受保護(hù)的內(nèi)部元素的類,并且必須通過派生的類類型的實(shí)例發(fā)生。? ? ?在自定義的類中的字段和方法前加上public訪問修辭符,可以使得Main方法能訪問此類的字段和方法。而private私有的,它是默認(rèn)的訪問修辭符。
? ? ?實(shí)例化Child類的對(duì)象并為字段賦值,前提是在Child類中設(shè)置字段和方法為public。
例:
class Child
{
public string _name;
public string _sex;
public int _age;
public int _height;
public void PlayBall()
{
Console.WriteLine(“我是小小羅!”);
}
}
而在Main方法中調(diào)用如下:
Static void Main(string[] args)
{
Child xiaoMing=new Child();//實(shí)例化了Child類的對(duì)象
xiaoMing._name=”馬小明”;//為字段賦值,用對(duì)象.字段的格式
xiaoMing._sex=”男”;
xiaoMing._age=6;
xiaoMing._height=120;
Console.WriteLine(“我叫”+xiaoMing._name+”,今年”+xiaoMing._age+”歲?!?;
xiaoMing.PlayBall();//調(diào)用踢球的方法
}查看全部 -
C#對(duì)象實(shí)例化
對(duì)象是真實(shí)存在的,類是對(duì)對(duì)象共同特征的抽象和概況
訪問字段的方法是對(duì)象名.字段名=賦的值
保護(hù)限制public
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
? ?class Program
? ?{
? ? ? ?static void Main(string[] args)
? ? ? ?{
? ? ? ? ? ?Child xiaoming = new Child();//實(shí)例化了child類的對(duì)象
? ? ? ? ? ?xiaoming.name = "馬曉明";//為字段賦值
? ? ? ? ? ?xiaoming .sex="男";
? ? ? ? ? ?xiaoming.age=6;
? ? ? ? ? ?Console.WriteLine("我叫"+xiaoming.name+",今年"+xiaoming.age+"歲;");
? ? ? ? ? ?xiaoming.PlayBall();//調(diào)用踢球的方法
? ? ? ? ? ?Console.ReadKey();//調(diào)試防止閃退
? ? ? ?}
? ?}
? ? public class Child
? ? {
? ? ? ? public string name;
? ? ? ? public string sex;
? ? ? ? public int ?age;
? ? ? ? public void PlayBall()
? ? ? ? {
? ? ? ? ? ? Console.WriteLine("吼啊");
? ? ? ? }
? ? }
}查看全部 -
C#定義類?
1、添加Child類:項(xiàng)目名稱Kindergarten——右鍵——添加——類——輸入類名
用/// 給類添加注釋
2、類的成員包括字段和屬性和方法,字段和屬性用來(lái)描述類的靜態(tài)特征,方法描述類的動(dòng)態(tài)行為
方法:一段有特定功能的代碼塊,{}里是方法體 ,PlayBall是方法名
代碼: ? class Program
? ?{
? ? ? ?static void Main(string[] args)
? ? ? ?{
? ? ? ? ? ?Child xiaoMing = new Child();
? ? ? ? ? ?xiaoMing.PlayBall();
? ? ? ?}
? ?}
? ?/// <summary>
? ?/// Child 類
? ?/// </summary>
? ?class Child
? ?{
? ? ? ?string name;// 姓名
? ? ? ?string sex;//性別
? ? ? ?int sge;//年齡
? ? ? ?int height;//身高 ?
? ? ? ?/// <summary>
? ? ? ?/// 踢足球
? ? ? ?/// </summary>
? ? ? ?public void ?PlayBall()
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("我喜歡踢足球");
? ? ? ?}
? ?}
注意:因?yàn)榉椒╲oid PlayBall是非靜態(tài)方法,所以要調(diào)用PlayBall方法 必須先實(shí)例化對(duì)象 Child xiaoMing=new Child();再調(diào)用 xiaoMing.PlayBall();
若方法為靜態(tài)方法 則只需在方法前加public 即可調(diào)用 ?public void PlayBall{}
PlayBall();
注:有static修飾的就是靜態(tài)方法 沒有static修飾的就是非靜態(tài)方法。查看全部 -
類和對(duì)象的概念?
1、 面向?qū)ο笤O(shè)計(jì)思想使用三種基本的設(shè)計(jì)手段:封裝、繼承、多態(tài)來(lái)模擬現(xiàn)實(shí)世界的事物。
封裝:
2、對(duì)象:現(xiàn)實(shí)生活中對(duì)我們有意義的一切事物都可稱為對(duì)象。(一個(gè)人、一棵樹、一首歌曲、一件工作都可以被稱為對(duì)象)
3、對(duì)象和類的關(guān)系
舉例一個(gè)小朋友 :小明 男孩 6歲 ?120cm ?喜歡踢足球
現(xiàn)實(shí)中有很多小朋友有姓名、性別、年齡、身高 、愛好這些特征 ,這些特征總結(jié)起來(lái)就是類。
特征可分為兩類:一種像姓名、性別、身高、年齡這些特征,這些特征通常為名詞,可以用一個(gè)字符串或數(shù)字形容 ,稱之為靜態(tài)特征。在C#中使用字段或?qū)傩詠?lái)表示靜態(tài)特征。
另外一種特征:是對(duì)象的一種動(dòng)態(tài)行為,例如:踢足球? ? ? 這些特征通常為動(dòng)詞,很難用數(shù)字或文字來(lái)描述,在c#中用方法來(lái)實(shí)現(xiàn)這些動(dòng)態(tài)行為。
4、描述一個(gè)小朋友對(duì)象步驟:首先定義一個(gè)小朋友的類,類是抽象和概括的。在類中定義字段描述小朋友的靜態(tài)特征。定義方法體現(xiàn)小朋友的動(dòng)態(tài)行為。小朋友類中有那些特征,小朋友對(duì)象就有那些特征。然后創(chuàng)建小朋友類的對(duì)象,這個(gè)過程 稱之為實(shí)例化。通常使用 Child xiaoMing=new Child()命令來(lái)實(shí)例化一個(gè)對(duì)象?
xiaoMing就是對(duì)象的名字 他的命名規(guī)則和一個(gè)普通的變量名是一樣的
查看全部 -
不寫明訪問修飾符的默認(rèn)為private
查看全部 -
對(duì)象和類
類 包含 對(duì)象;
對(duì)象 包括 靜態(tài)特征(如字段、屬性) 和 動(dòng)態(tài)行為(方法);
查看全部 -
封裝 是隱藏信息 流出對(duì)外訪問的接口
查看全部 -
結(jié)構(gòu)中的元素不能有初始值查看全部
-
。。
查看全部 -
在main方法中訪問靜態(tài)方法不用實(shí)例化對(duì)象,直接調(diào)用方法名即可
引用類型參數(shù),形參改變,實(shí)參也改變
值類型參數(shù)傳參時(shí),形參改變,實(shí)參的值不會(huì)改變
查看全部 -
在main方法中訪問靜態(tài)方法不用實(shí)例化對(duì)象,直接調(diào)用方法名即可
引用類型參數(shù),形參改變,實(shí)參也改變
值類型參數(shù)傳參時(shí),形參改變,實(shí)參的值不會(huì)改變
查看全部 -
1.構(gòu)造方法用于給屬性賦值,也可用于屬性是只讀的情況,同時(shí)減少main方法賦值語(yǔ)句;
2.構(gòu)造方法可以進(jìn)行重載,與方法重載類似。查看全部
舉報(bào)