面向对象
将具体事物抽象化,变成类:
事物特性——>类的成员变量(属性)
事物行为——>类的方法
类的定义
访问修饰符(public、private、protected)class 类名称
{
修饰符 数据类型 数据名称;
}
修饰符可以防止意外修改数据,在类中默认类型为private
修饰符 | 访问范围 |
---|---|
public | 任何地方(当前程序集、派生类、整个程序) |
protected | 类本身、继承和父类、当前程序集中的派生类 |
internal | 类内部、当前程序集 |
private | 类内部 |
规范
类名称首字母大写,变量可使用小写英文与_拼写
public class Applesss
{
public string color;
public int? weight;
//方法
public void Grow()
{
Console.Write("growrr");
}
}
构造函数
在c#中定义一个类的时候,默认自带一个空的构造函数,重写构造函数则会覆盖该默认函数
构造函数:在类中定义一个与类名相同的方法
- 非静态构造函数:在类每次实例化的时候都会执行一遍
- 静态构造函数:在类首次加载到内存时执行,可进行属性初始值赋值等
- 带参数的构造函数:带入参数
public class Applesss
{
public string color;
public int? weight;
/// <summary>
/// 非静态构造函数
/// </summary>
public Applesss()
{
Console.WriteLine("我是非静态构造函数");
}
/// <summary>
/// 静态构造函数--在类首次加载到内存时执行
/// </summary>
static Applesss()
{
Console.WriteLine("我是静态构造函数");
}
//带参数的构造函数
public Applesss(string What)
{
//this指向的就是当前实例
this.color= What;
Console.WriteLine("我是带参数的非静态构造函数");
}
//方法
public void Grow()
{
Console.WriteLine("我是方法");
}
}
类的使用
public void Test7()
{
//非静态构造函数
Applesss applesss = new Applesss();
applesss.color = "gree";
applesss.weight = 10;
//方法访问
applesss.Grow();
//带参数构造函数实例化
Applesss applesss1 = new Applesss("red");
Console.WriteLine(applesss1.color);
}
public class Applesss
{
public string color;
public int? weight;
/// <summary>
/// 非静态构造函数
/// </summary>
public Applesss()
{
Console.WriteLine("我是非静态构造函数");
}
/// <summary>
/// 静态构造函数--在类首次加载到内存时执行
/// </summary>
static Applesss()
{
Console.WriteLine("我是静态构造函数");
}
//带参数的构造函数
public Applesss(string What)
{
//this指向的就是当前实例
this.color= What;
Console.WriteLine("我是带参数的非静态构造函数");
}
//方法
public void Grow()
{
Console.WriteLine("我是方法");
}
}
属性定义
public class SD
{
#region 属性
private int id;
private string name1 = "dfd";
private string name;
/// <summary>
/// 属性最完整写法,【propful+2次Tab】
/// </summary>
public int ID
{
get { return id; }
set { id = value; }
}
/// <summary>
/// 简化版属性定义【prop+2次Tab】
/// </summary>
public int Age { get; set; }
/// <summary>
/// 只写属性
/// </summary>
public string Name
{
set { name = value; }
}
/// <summary>
/// 只读属性
/// </summary>
public string Name1
{
get { return name1; }
}
}
public void Test()
{
SD sD = new SD();
sD.Name = "fdg";
Console.WriteLine(sD.Name1);
}