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