面向对象的编程,其实就是用现实中的思维方式来编程。
面向对象编程的3个方式:封装,继承,多态。
而提到面向对象编程就必须提到类,和对象。
类:物以类聚,人以群分。类,就是一类,是用户自定义的数据类型。
但是我们需要知道的是先有的对象,后有的类。
构造函数特点是:函数名和类型相同,没有返回值。构造函数的修饰符可以是private,protected,但是最好好public,这样才可以new.
重载的特点是:方法名相同,参数不同。
定义好一个类后,不写构造函数也会有一个无参数的构造函数。
挡位类手动写一个构造函数后,会覆盖默认的那个构造函数。
报异常比较消耗资源。
//DRY原则:DON'T Repeat Yourself 不用重复你自己。
private void btnShiTou_Click(object sender, EventArgs e)
EventArgs e的意思是:事件相关联的信息。比如:键盘按下的是哪个键。
object sender:表示是谁的事件。
任意类型都能是object类
参数与返回值没有任何关系。
变量的作用域:是指离声明语句最近的,并且包含大括号之内的。
在类中直接声明一个变量,叫做成员变量。类的成员变量声明后可以不赋初值,因为会有默认值。
在方法中使用的变量叫做局部变量,必须赋值,才能使用。
什么是封装?
其实封装就是遥控器,我们只需要知道怎么换台,不知道知道遥控器里面是怎么设计的。类和对象就是封装的体现。
1.属性封装成字段。
属性封装
2.方法的多个参数封装成一个对象。
参数封装成对象
3。把一堆代码封装成一个对象。
继承(类与类之间的关系)
父类: Base Class Parent Class
子类:Derived Class Child Class
继承的好处是:
1.代码重用
2.多态。增加程序的可扩展性,和灵活性。
LSP里氏替换原则:需要父类类型的时候,给一个子类对象也是可以的。
类图
当一个子类继承父类之后,该子类中所有构造函数默认情况下,在自己被调用之前,都会调用父类无参数的构造函数,如果父类中无参数构造函数,则提示报错。
解决方法:
1.在父类中添加一个无参数的方法。
2.用base:
构造函数是不能被继承的。
ctor快速创建一个构造函数
使用this来调用本类中的构造函数
使用this
访问修饰符
在这种情况下,this,base的作用是一样的。
参数传递方式有两种:
1.值传递;默认的参数传递方式就是值传递。
2.引用传递:ref。传递栈本身的地址。(为变量起个别名)
overload是方法的重载。一个类之间的方法
override是方法的重写。父子类之间的方法
重载
接口:接口就是一种规范。像内存条插电脑一样,这里的插口是:规范。要求笔记本卡槽做成多大的多宽的。内存条是实现接口的类。可以应用在多个电脑,体现了多态。
而接口的意义是为了实现多态。接口:就是光说不做。
interface表示接口。并且接口的名称以“I”开头,这样起名字的好处是让程序员一眼就知道他是接口。并且以able结尾。
接口中的成员不能有任何修饰符
一个类只能继承一个类,但是可以有多个接口
接口
访问级别约束
1.子类访问的级别不能比父类高。
方法的访问修饰符必须和方法一致。
实现多态之虚方法virture












网友评论