CSharp 面向对象思想
知识点
面向对象包含了两个很重要的东西——属性、方法
- 属性:这个对象有什么特征。如:颜色、重量、位置……
- 方法:这个对象能干嘛。如:上色、掉落……
属性
这个对象有什么特征。比如人有姓名、年龄、性别等。
格式为(方括号代表可以写、可以不写):
[修饰符] [static] 数据类型 变量名 [= 初始值]; |
- 修饰符分为五个
public
——公共的,所有类都能调用它的值。private
——私有的,相当于他的小秘密,只有他自己可以访问这个值protected
——受保护的,只有它和它的孩子(继承它的)类可以访问这个值internal
——同一个项目中的对象可以访问protected internal
——可可以在其他项目中,被派生类使用- 不写——相当于 private,只有他自己能访问
static
关键字将此变量设置为静态变量。它的特性是:- 一旦这个类(不是实例化之后的对象)被初始化之后,它的值就一直存在
- 数据类型可以是任何种类,包括复合类
- 变量名——一般情况下,C#变量名的命名方式约定俗成为:
- private 修饰符,它的变量名之前应该有个下划线,然后采用小驼峰。如:
_chineseName
- public 修饰符,采用大驼峰。如:
ChineseName
- 变量名不能和类名重名。
- private 修饰符,它的变量名之前应该有个下划线,然后采用小驼峰。如:
- 初值。我们可以给属性设置初始值
构造函数
在创建对象的时候,告诉它一些初始值。比如说我告诉 Person 类,你的名字是啥、年龄是啥。
一旦声明了构造函数,无参构造函数将不复存在
无参构造函数——如果没有声明构造函数,那么系统默认会给一个隐形的无参构造函数。
public 类名() |
固定写法
public 类名 (数据类型 参数1, 数据类型 参数2) |
构造函数的用法是
类名 变量名 = new 类名(值1, 值2); |
Getter 和 Setter
有些属性,我们要给他规定合法值,或者一些其他的操作。那么就可以用到 Getter 和 Setter。他俩分别在赋值和获取值的时候执行。
一个完整的、最基础的属性应该长这样:
private 数据类型 _变量名; // 注意这里是 private 修饰符,所以带 _,命名方式为小驼峰 |
get
是取值set
是赋值value
是我们赋值的那个“值”。他是个隐含变量。假设p1.Name = "李四"
,那么set 里面的 value 就等于"李四"
。
举个栗子:
private string _name; |
方法
我们可以给对象设定一些它的“动作”。比如说人类可以开车、吃饭、睡觉。
一个基本的方法定义为:
[修饰符] [static] 返回值类型 方法名([参数1, 参数2]) |
- 方法名的命名方式一定是大驼峰
static 关键字
如果有 static 关键字修饰的属性或方法,说明他是静态的。这类属性和方法可以直接通过 类名.属性名/方法名()
直接调用。不需要实例化对象。具有 static 关键字的属性是全局性的,也就是说我们在 A 类里调用 Person.Age += 1;
,那么在 B 类里访问 Person.Age
也是加一之后的值。
public class World // 世界类 |
懒人方法
- ctor 回车,TAB。创建构造函数
- cw 回车,TAB。Console.WriteLine() 的懒人方法
- propfull 回车,TAB。创建一个带有 getter 和 setter 的属性
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦甜怪圈 Xiaomai Circle!