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