面向对象编程基础(干货)
曾经看过的一些慕课网学习视频,做下笔记,后序更新。
概念1:对象和类
图1:对象和类的区别,对象具体到实物,类是一种事物的泛称。(比如:对象猫、对象狗 --- 对应着动物类)
图2:对象和类的代码块,类定义了字段、属性和方法。而对象则定义对应的字段、属性、方法是什么。(举例:类的字段为姓名、性别、年龄、身高以及方法爱好 --- 对应的对象即为小明、男孩、6岁、120cm、踢足球)
图3:一个简单类的实现。
图4:实例化对象,也就是我们常数的New一个对象。
概念2:方法
1.方法是对象的动态行为,使用方法分为两个过程:定义方法+调用方法。
2.方法又分为无参方法 () 和有参方法 ("参数") 。无参方法一般调用以后就一种动态行为,例如打人的无参方法就是打人;但是有参方法可以根据不同的参数输入,输出不同的动态行为,比如打人的有参方法可以选择轻打、重打或者打死,哈哈。
3.方法的声明是在类中,方法的调用可以在类外面。
4.方法的重载:重载仅针对有参方法,也就是说,对同一种方法,输入不同的参数,得到不同的结果。如下图:同一种方法EatSugar可以根据不同的参数输入,调用具体的方法。(说一个概念:下图中形参即为int count,实参即为我们输入的数量,例如2)
5.return在方法中的两个作用:结束方法调用+带回返回值。
概念3:构造方法
1.无参构造方法与有参构造方法。(和上面的普通方法差不多,如果类里面没有特意的去声明一个构造方法,那么这个类其实已经默认的存在一个无参构造方法,当然如果你在类中定义好了一个构造方法,不管是有参的还是无参的,那么默认的那个无参构造方法就不存在了)。
2.构造方法的作用:为属性赋值。
3.构造方法通常声明为public
4.构造方法的特殊点之一就是没有返回值类型。(比如int啊什么的)
5.构造方法必须与类名相同。
6.我们通常所说的new一个对象。其实new后面跟着的就是类的构造方法。
7.构造函数中可以使用this关键字,用以访问当前对象的字段和方法。
8.构造方法也是可以和普通的方法一样被重载的,具体的实现方法一样,也是根据输入参数的不同来区分的。
9.构造方法的初始化器:即在()与;之间加入一个{},大括号内的即为对象初始化器的内容,但是要与你的有参构造函数所对应。
概念4:值类型与引用类型
1.这个就不说了,记住string和类是引用,结构struct是值类型即可。
2.结构的一点概念:结构可以定义字段、属性和方法;不能为结构中的字段赋初值;结构的构造方法必须为所有字段赋值;不能为结构显示的定义无参的构造方法;结构类型的对象可以不实例化。
3.枚举:一定范围内的东西为了方便操作而搞的,比如一周就7天,性别只有男和女,可以用枚举来搞。他也有三个特点:1.值类型;2.枚举里面不可以定义字段、属性和方法;3.枚举值是从0递增的整数。
4.ref和out关键字:ref用来传参,即当我的参数是值类型的时候,可以用引用类型来传递;如下图我们在调用Growth函数时,参数使用ref关键字,使得该参数可以以引用类型来操作,运行一次得4,如果不使用ref关键字,则运行后得3。这也是值类型与引用类型的区别所在,值类型形参改变,实参是不变的,引用类型跟着变。
out用来获取结果,相比与return来说,return每次只返回一个结果,如果想返回多个结果,则使用关键字out。当然你在调用这个函数的时候也需要使用out关键字,我没有截图,目的也是把值类型当成引用类型来用。
可观看慕课网视频,个人感觉最佳详细且关联性很强。