标签:类型 可见 nbsp 名称 执行 spec 对象 标识 构造函数
一、类
定义类使用class关键字。
<access specifier> class class_name { // member variables 成员变量 <access specifier> <data type> variable1; <access specifier> <data type> variable2; ... <access specifier> <data type> variableN; // member methods 成员方法 <access specifier> <return type> method1(parameter_list) { // method body } <access specifier> <return type> method2(parameter_list) { // method body } ... <access specifier> <return type> methodN(parameter_list) { // method body } }
请注意:
类的内部定义不同的成员,这些成员包括
1)字段:内部定义的一种变量
2)属性:用于描述对象的特征
通常属性带有get和set访问器,get访问器用来获取属性的值 ,set访问器则用来设置属性的值 。如果 希望让属性只读,即只能获取其值而不允许对其进行赋值,直接去掉set访问器即可,仅保留get访问器。
如果属性不需要特殊验证可以简化写成
publie string Name{get;set;}
不简化
publie string Name { get{return this.name;} set{this.name=value;} }
设置默认值
publie string Name{get;set;}=700
只读属性
1)publie string Name{get;}
2)//还可以使用类似Lambda表达式来声明
publie int MaxTaskNum=>500;
当使用”=>“操作符来声明只读属性时,不需要写get语句 ,也不需要也return关键字,”=>“后面直接 写上返回值 即可。
字段是真正存储数据值 的变量,而属性只是一个对外公开的窗口,数据通过属性来传递。当获取属性的值 时,通过retrun关键字直接把字段中存放的值 返回。当要设置属性的值 时,调用set访问器把外部传进来的数据存放到value中,再以value作为纽带把数据赋值给字段。
3)方法:对象的行为
带有参数的方法
int Add(int a ,int b ) { return a+b; }
不按顺序参数调用方法
Add(b:5,a:6
定义可选参数,就是在调用方法时,可以忽略的参数,就是可选 参数要赋值默认值。如下P1是可选参数,P2由于已赋了默认值,就成了可选参数
void DoWor(string p1,string p2="abc") { }
这要调用
DoWork("123");
因为P2是可选参数,这样是对的,但如下就是不对的,p1是可选参数,如果仍然采取上面的调用方法,就会提示错误 ,由此可见可选 参数要放在参数列表最后一列,因为放在前面 无法一一对应。
void DoWor(string p1="abc",string p2) { }
也可以Lamebda表达式的形式来声明
public string PickName()=>"jack";//PickName方法没有参数,返回一个字符串实例 。 public string PickName(int a ,int b)=>a+b;//带参数的方法
写一个例子
用属性来封装name字段,是为了安全性。不让直接该变量字段,也可以进行判断一些规则,不让值 随便修改 class Program { static void Main(string[] args) { Person ps =new Person();//类在使用的时候,必须使用new实例化。 ps.Name="小红"; ps.Age=20;
ps.Play();//调用方法
console.Read();//让代码执行到这边可以停 } } public class person {
// 字段 string name;//字段默认为private,可以不写private,代表只能在类里面使用 public string Name;//公共的字段,可以在类外面使用该字段
//属性 public string Name { get {return name;}//返回name的值 set { name=value;}//给name值 赋值 } int age public int age { get {return age;} set { if (value<0) { throw new ArgumentException(“属性值不能小于0”);//抛出异常 } age=value; } }
//方法
public void play()
{
Console.WriteLine("一起去玩");
} }
4)事件:在特定条件下触发的行为
5)构造器,构造函数,构造方法。它是一种特殊的方法,在创建对象实例时调用,用来进行一些初始化工作。
在类被实例化的时候 (创建类的对象实例时)调用,它也是类的成员,具有以下特点:
即使开发人员不为类编写构造函数,它默认就有一个不带参数的构造函数,
如果 希望在类型初始化的过程中加入自己的处理的代码,或者使用带参数的构造函数,就有必要息来定义构造函数
标签:类型 可见 nbsp 名称 执行 spec 对象 标识 构造函数
原文地址:https://www.cnblogs.com/michellexiaoqi/p/9898471.html