类、对象:
你可以把类看成一个模板,照这个样子做出来的具体的东西就是对象。
类是抽象的一个类别,对象是一个该类别的具体的事物。
注:一般一个类一个文件,这样好管理。
如,人是一个类,师父是对象,年龄、身高是字段,年龄、身高是否合法,通过属性来控制,吃饭、睡觉、走路就是行为,也就是方法~~
-----------------------------------------
字段、属性:
对象包括字段和方法 ,用一个类的时候要先创建对象,然后再调用对象的方法。
我们一般都把字段定义成私有的 ,是为了不让使用该类的人随意去改动它
我们要把一个对象看成一个黑盒子 ,只要知道这个对象有什么字段,能做什么就行了 ,具体它里边是这样操作的,我们不关心 ,也无法知道
这就是面向对象的一个非常重要的概念叫 封装。
就是把一个东西包起来,让别人去用 ,但不必让他知道里边是如何工作的
现实世界就是这样的 ,我们的东西都是一个对象 ,都是内部包装的,我只要知道如何和他打交道就可以了 ,比如你的手机,相机,电脑 等等 ,这就是所谓的封装的概念 。
好,我们再看看,如果我想把我内部的字段暴露给人使用的话,在C# 里有个主要的概念叫 属性
属性 其实是一个特殊的方法,属性就是为了让用的人访问和写入字段的方法
你做类的时候要考虑该字段的类型及其取值范围 ,控制这个就是要通过刚才写的属性来处理的
属性就是一个get,一个set 就是操作字段用的 为了保证它的正确性
--------------------------------------------
静态方法:
我刚才说用对象的时候要创建一个对象,对象本身还可以提供静态方法,这样的方法不需要创建对象就可以调用,把类里的方法上加一个static 就是静态方法了,直接使用类名来访问。
你会问,那要实例方法干什么,还得创建对象再调用,直接用类名直接调用多方便?
实例方法是有状态的,每个实例的属性不同,你叫a,我叫c
实例方法操作的数据就是这些实例的属性,而静态方法不能操作这些东西,静态方法用在一些帮助类里,工具类里
比如 Console.WriteLine这个方法,就是 Console的一个静态方法,你不需要创建Console的实例就可以调用了
------------------------------------------------
总结:
类中包括 字段,属性,构造函数,实现某种功能的函数
使用一个类的时候必须创建一个对象来使用
字段一般都是私有的
如果想让使用的人操作你的字段的话需要提供相应的属性
通过属性来控制字段的值的合法性
构造函数的名字必须和类名相同,不能有返回值,构造函数可以重载,自己的函数也可以重载