- 一、什么是类和对象
- 1.类和对象
- 2.创建类
- 3.创建对象
- 二、访问修饰符
- 三、属性
- 1.属性
- 2.自动属性
- 四、构造函数
- 1.定义
- 2.特点
- 五、this关键字
- 六、类结构
- 七、static静态
- 1.静态成员变量
- 2.静态构造函数
- 3.静态方法
- 4.静态类
- 5.适用性
一、什么是类和对象 1.类和对象
面向对象∶一种软件开发的思想,指导程序员如何分析、解决问题。
类: 是一个抽象的概念,即为生活中的”类别”。
对象: 是类的具体实例,即归属于某个类别的”个体”。
例如︰学生是一个类,表示一种类型,”小明同学”则是一个对象。
2.创建类名词类型的共性,作为数据成员。
动词类型的共性,作为方法成员。
3.创建对象语法:
访问级别class类名
{
类成员……
}
通常每个类都在一个独立的c#源文件中。
创建新的类意味着在当前项目中产生了一种新的数据类型。
语法:
类名引用名;
引用名=new构造函数(参数列表);
创建对象的过程也称为”实例化”,
二、访问修饰符
用于修饰类及类成员的访问可见范围。
public:所属类的成员以及非所属类的成员都可以访问。
private:只有所属类的成员才能访问。[类成员的默认级别]
三、属性 1.属性
对字段起保护作用,可实现只读、只写功能。本质就是对字段的读取与写入方法。
语法:
[访问修饰符] 数据类型 属性名
{
get { return字段;}
set {字段=value;}
}
private string loginId;
public string Loginid//首字母要大写
{
get
{
return this.loginId;
}
set
{
this.loginId = value;
}
}
2.自动属性1.通常一个公有属性和一个私有字段对应。
2.属性只是外壳,实际上操作的私有字段。
当属性访问器中不需要任何其他逻辑时,使用自动属性可以更加简洁。
本质就是一个字段两个方法。
语法:
[访问修饰符] 数据类型 属性名{ get ; set; }
public int Password{get;set;}
四、构造函数 1.定义
提供了创建对象的方式,初始化类数据成员的特殊方法。
语法∶
[访问修饰符] 类名([参数])
{
初始化…
}
public User(string loginId,string password)//User 你创建的类的名字
{
this.loginId = loginId;
this.Password = password;
}
2.特点
1.与类同名。
2.没有返回值,也不能写void。
3.不能被直接调用,必须通过new运算符在创建对象时才会自动调用。
4.每个类都必须至少有一个构造函数,若不提供,编译器自动生成一个无参构造函数。
5.如果程序员定义了构造函数,则编译器不会再提供。
五、this关键字
表示当前对象的引用。
访问当前类成员时,使用this关键字,可以提高代码的可读性。
在没有歧义的情况下,也可以省略。
六、类结构
访问级别class类名
{
字段:存储数据
属性:保护字段
构造函数∶提供创建对象的方式,初始化类的数据成员
方法:向类的外部提供某种功能
}
class User
{
//字段 存储数据
private string loginId;
private string password;
//属性 保护字段 为字段提供逻辑判断
public string LoginId
{
get
{
return loginId;
}
set
{
this.loginId = value;
}
}
public string Password
{
get
{
return password;
}
set
{
this.password = value;
}
}
//构造函数 提供了创建对象的方式,常常用于初始化类的数据成员
public User()
{
}
public User(string loginId,string password)
{
this.LoginId = loginId; //如果输入账号需要进行条件判断,引用LoginId属性
this.password = password;//输入密码不需要进行条件判断,引用password字段
}
//方法
public void UserPrint()//打印输出账号密码的方法
{
Console.WriteLine("{0},{1}",loginId,password);
}
}
七、static静态 1.静态成员变量
2.静态构造函数1.使用static关键字修饰的成员变量。
2.静态成员变量属于类,类被加载时初始化,且只有一份。
3.实例成员变量属于对象,在每个对象被创建时初始化,每个对象一份。
特点∶存在优先于对象,被所有对象所共享,常驻内存。
3.静态方法1.初始化类的静态数据成员。
2.仅在类被加载时执行一次。
3.不允许使用访问修饰符。
4.静态类1.通过引用调用实例方法时,会隐式的传递对象引用,以便在方法内部可以正确访问该对象成员变量。
2.通过类名调用静态方法时,因为没有具体对象,所以在static方法中不能访问实例成员。
5.适用性1.使用static关键字修饰的类。
2.不能实例化,只能包含静态成员。
3.静态类不能被继承,但是静态方法、属性都可以被继承。
利:单独空间存储,所有对象共享,可直接被类名调用。
弊:静态方法中只能访问静态成员,共享数据被多个对象访问会出现并发。
适用场合∶
1.所有对象需要共享的数据。
2.在没有对象前就要访问成员。
3.工具类适合做静态类(常用,不需要过多数据)。



