类的定义与对象的使用
class Student //定义类名:名词,要求首字母大写,避免单词缩写
{
// 1、编写类的字段、属性 --用来描述类的静态特征
//字段:学号、学员姓名
private int studentId;
private string studentName = string.Empty;
//属性:学号、学员姓名
public int StudentId
{
get { return studentId; }
set { studentId = value; }
}
public string StudentName
{
get { return studentName; }
set { studentName = value; }
}
//2、编写类的方法接口 -- 独立完成某个功能的单元模块
//方法获取学员信息
public string GetStudent()
{
string info = string.Format("姓名:{0} 学号:{1}", studentId, studentName);
return info;
}
//3、在类的设计中,可以只包括字段、属性或方法
}
对象的创建与使用
static void Main(string[] args)
{
//创建对象
Student objStudent = new Student(); //依据对象开辟空间,初始化成员
//给对象属性赋值
objStudent.StudentId = 1001;
objStudent.StudentName = "小王";
//调用对象的方法
string info = objStudent.GetStudent();
Console.WriteLine(info);
Console.ReadLine();
}
字段与属性
类型private(私有的:外部不可见)
public (公有的:外部可见)
举例:
字段的使用
字段又成为”成员变量”一般用来在一个类的内部做数据交换使用,一般用private修饰。
字段的命名规范:字段名一般采用camel命名法。
//通常只供类内部的不同方法使用。
属性的使用
private int age; //字段私有化
public int Age //属性是公有的
{
//数据类型和字段要一致
get { return age; } //返回私有字段的值
set { age = value; } //通过value将外部值赋值给私有字段
}
使用属性避免非法数据的方法
非法数据
在get和set方法中可以添加任何我们需要的业务逻辑,从而有效避免非法数据
只读属性
有些属性为了保护数据,只能读取,而不能赋值;
只读属性没有set方法。
举例:
没有对应私有字段的属性
属性是对外提供数据的接口,而数据的保存不见得必须是字段,可以是任何能保存数据的数据源。
举例:
自动属性
自动属性是.NET3.0以后版本出现的,目的是为了简化属性的编写,如果是标准属性,完全可以不再自己定义私有字段,而是由编译器生成
自动属性的快捷键
prop+tab+tab键
自动属性的使用需要注意:不能直接操作私有字段;不能设置只读、只写属性;不能添加验证逻辑。