------------恢复内容开始------------
简单复习一下面向对象的知识点。
我首先要想想什么是面向对象?然后深入理解一下相关的基础知识。
面向对象是一种思想,区别于过程。它是把事物更好地抽象并解耦,让其更容易复用等一系列好处。
面向对象的基本框架是事物逻辑进行归为类,并在这个构造的抽象类里面实例化一个对象,这个对象有属性、方法。
在书本的第二章节讲解了封装,其意义在于更好地保护了数据读写安全。此外,还讲解了方法重载和构造方法。
第三章,书本讲述了集合类,分别介绍了集合定义,列表集合arrylist、字典集合hashtab
第四章,我们介绍了泛型,定义、泛型集合list<>、泛型字典集合dictry<k,v>
第五章,讲述了类的继承:,包括定义、使用、访问修饰符奇怪的事物
第六章,要讲解多态,甚至还包含密封类
第七章,书本讲解的内容更加奇怪了。抽象类与接口
剩下的内容,就是基础的文件操作了。
至此,目录算是讲完了。接下来,我们将展开讲解。
面向对象概念不用学。因为在使用的过程中才会对此有了深入理解~
我们接下来看类,
在C#中,我们这样定义类:
public class a{}
前面访问修饰符我们可以省略,默认应该是公开。后面就是自定义的类名啦~
类的里面我们可以写一些东西:
class galgame{public string name; //这里可以是字段 public void show{cw("\t{0}",name)} //这里可以是方法}
好了,我们已经学习了什么叫类,类里面可以有什么。接下里我们学习如何new一个对象,嗯,是实例化创建对象。
项目类{主方法{自定义类 自定义对象=new 自定义类()}} comdity可能是系统默认类
至此,我们简简单单从类这个模具里捏了对象外形,你是否喜欢呢?如果不喜欢,我们接下来可以再定义一下对象细节~
项目类{主方法{new对象;对象.类模具里面的字段属性=自定义赋值;//定义对象细节 cw("\t{0}",对象.类模具里面的字段属性); 对象.类模具里面的方法; }}
我们不仅定义了对象细节,还对对象进行了访问一些属性、方法的操作。
在我久远的印象中,自定义类,类里面一些自定义的方法以及一些属性都是可以单独写在一个cs文件里的,在使用的时候,主项目cs可能会需要头部引用,或根据提示自动创建对象关联相关类的引用。
接下来,我们看一个应用,让我看看有用的信息讲给你们~
创建应用首先要构造数据模型,这里将一组固定单选题的答案声明成枚举类型的数据形式,你们还记得枚举吗?
public enum 嗯优米{num1=1,num2=2} 这样。
然后自定义了类,装载了字段。
然后这个应用试图使用数组保存模具类生成的对象精修后保存它们的信息。所以你还记得数组吗?
首先,我们要声明或定义一个数组。像下面这样:
声明的语法是 数据类型[]数组名; //这里数据类型可以是自定义的数据类型,例如自定义类
接着,我们要使用这个数组。像这样:用赋值的=new 数据类型[数组长度]; //这里new了一下,同时给了数组长度,在内存
开辟了一处空间~
枚举还记得怎样使用吗?
枚举名.枚举名内的变量名 //准确来说,应该不是这样叫做 总之,就是这样
基本上这个应用剩下的工程实践部分,如何梳理业务逻辑代码,构建数据模型,然后初始化,遍历查找数据。在这里,是使用了数组充当了一个数据库,但是不能持久化存储,诶~
各个分支构建好以后,基本在主函数一个界面引导、初始化、调用函数了
好 我们来讲第二章 封装吧
这里讲了我们为什么要使用封装?还牵扯到了一些先关的内容,如方法重载、构造方法,我们来看一下
首先,我们为什么要使用封装呢?
这里大概讲了一下原因,是这样的
字段存在缺陷。还记得字段吗?就是那个类里面,也就是模具里面定义的字段,然后实例化对象,也就是从模具大概捏出大概形状的事物,需要你二次再细化定义字段属性,比如美少女性格是XX
我们在实例化对象,在给对象一些字段赋值的时候吧,有时候就不小心或者故意输错了,导致数据不太正常的样子,美少女变老奶奶了不是
所以,我们在类这个模具里就要写一些逻辑,确保数据正常的下限。这叫做把字段封装成属性。像这样:
美少女类{
private int age; //美少女年龄是秘密,so字段为私有,首字母小写,属性首字母大写
public int Age{get{return age;} set{如果在设定范围内允许赋值,否则默认值}}//奈,这就是针对字段的属性了}
项目类{主函数{new 美少女类;xx.Age=???;//这里给属性赋值,因为字段以及经过封装变成属性了^_^}}
我们在来看一下后面的内容,这里讲的是属性中的get set 读写操作
我们可以这样理解属性,对象是银行,现金是银行对象的字段,我们要通过ATM窗口这个属性来操作现金字段
后面似乎没有什么好说的,给了一个练习小实践,我看看...
说一下吧,这里大概是这样做的。首先创建命名窗体,然后单独创建一个类,也就是构造数据结构,里面用到了封装的知识
像这样:美少女类.cs
美少女类{私有字段;///<summary>///(good)好感度///</summary>公有属性Good{get{return good;}set{good=value;}}}
接着创建了一个窗体加载,From1_Load(),new了一下,赋值,然后显示lblxxx.Text="xxx"+对象.属性.Tostring();
好了,接下来我们学方法重载。
方法重载是在同一个类中,有相同的方法名,只是参数不一样(类型啊、数量啊),用的时候吧自动匹配
这么做的好处就是,不需要记住很多方法名,相同功能方法传递不同参数,编译器自动帮助我们选择合适的方法调用
下面又是一个小练习,我看看
在这里和前面一样,只不过在构造数据模型的时候,使用到了方法重载。就像这样:
///<summary>////文静表情///</summary>///<param name="xx">?</param>///<returns></returns> 然后就是方法了()
在From1.cs 这里class Form1:Form 表示继承,这里一开始 对象=null;挺奇怪的。接着在这个窗体方法里 Initialize Component();这里也很奇怪
接着往常内容,最后注释功能 点击方法里面输出又调用了类模具里面的重载方法 txtMessage.Text +=...+"\r\n"; 这里+=似乎在延续
接下来我们来讲解一下构造方法,构造方法是什么?
首先它是一个方法,然后它方法名字与类名相同(对,类名是大写的);它有不同的参数,但没有返回值;它在被new对象时自动调用;它是诞生被用来给new的对象初始化赋值的。
大概是这样:类名{私有字段;公有构造方法;公有访问器;} 然后在主方法中直接new传参初始化就好了,非常方便,不用写一堆赋值初始化的东西了。
就像这样: 主方法{类名 对象名=new 类名(参数1,参数2,参数3,...)}
这里公有构造方法我展开写一下吧 public 与类名相同(类型 参数1,类型 参数2,...){this.访问器属性字段=参数1;this...} 好了
我们看一下下面案例有啥可学习的知识点。我大概讲一下过程吧,首先构建数据模型,创建了两个类,它们都有类、字段、构造方法、属性封装
构造方法,自己把自己调用的(也就是new一下自动调用)给自己完成了本地类内同类this.属性字段封装赋值
然后,两个窗体登录、呈现,它们是通过构造方法传参来传递信息的!
------------恢复内容结束------------
浙公网安备 33010602011771号