陈伟视频——(44~49)类
陈伟视频44
1、类及对象
类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。
2、·类的引入
3、·类和对象之间的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
类与对象的关系就如模具和铸件的关系 类的实例化结果就是对象,而对一类对象的抽象就是类,类描述了一组有相同属性和相同方法的对象。
4、类和对象的区别
1、定义不同
类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
2、范畴不同
类是一个抽象的概念,它不存在于现实中的时间、空间里,类知识为所有的对象定义了抽象的属性与行为。
对象是类的一个具体。它是一个实实在在存在的东西。
3、状态不同
类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何数据时,类本身不存在于内存空间
对象是一个动态的概念,每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为,属性可以随着它自己的行为而发生改变。
5、·类的组成
—方法/数据/事件
—成员的访问权限(public/private/friend)
6、·对象的创建和使用
扩展资料
使用类时的注意事项:
1、类的成员可以是其他类的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员。
2、类定义必须以分号“;”结束。
3、类与结构体的区别:没有明确指定类成员的访问权限时,C++结构体的成员是公有的,而类的成员是私有的。
陈伟视频45
定义类的属性
写属性过程中有两种方式: Let 和 Set
写对象属性set:数值属性,字符串,整数,浮点用let
注意:属性过程名是真正的属性名,变量是中间存错的媒介,将一个属性设置为一个对象的时候用 property set
定义对象方法
1.先声明类类型,然后再定义对象
举例:Student stud1,stud2; //Student是已经声明的类类型
2.在声明类类型的同时定义对象
1 class Student//声明类类型
2 {
3 public://先声明公用部分
4 void display()
5 {
6 cout<<″num:″<<num<<endl;
7 cout<<″name:″<<name<<endl;
8 cout<<″sex:″<<sex<<endl;
9 }
10 private://后声明私有部分
11 int num;
12 char name[20];
13 char sex;
14 }
15 stud1,stud2;//定义了两个Student类的对象
16 //在定义Student类的同时,定义了两个Student类的对象。
3.不出现类名,直接定义对象
1 class//无类名
2 {
3 private://声明以下部分为私有的
4 ┆
5 public://声明以下部分为公用的
6 ┆
7 }
8 stud1,stud2;//定义了两个无类名的类对象
添加方法
·私有方法和全局方法(函数)
同一般方法/函数
陈伟视频46
添加事件
·定义事件
Public Event MyEventName(para1,para2,…)
·产生事件消息
RaiseEvent My Eventname(para1val,para2val,…)
·示例(素数查找)
给用户窗体(From1)添加属性,方法,事件
·属性
·方法
·事件
自定义类和窗体之间通过自定义事件的相互作用
·声明事件源变量
——[Public|Private]WithEvents
varname[([subscripts])] AS type[,…]
·自定义类产生事件:例(素数查找)
·窗体产生自定义事件:例(放大缩小)
陈伟视频47
ClassBuider的使用
解释:
1、User class是不可变的,一旦我们实例化它就无法更改。
2、它的构造函数具有包私有可见性,必须使用构建器来实例化实例User。
3、Builder的字段不是不可变的,可以在构建实例之前多次更改User。
4、builder流利并且返回this(类型Builder)并且可以链接。
·目的:创建自定义的类或集合
·方法:
——类:属性/方法/事件
——集合:Add Item Remove Count NewEnum
·特别:
自定义集合类时,必须实现枚举算子:NewEnum
Public Property Get NewEnum() As IUnknown
‘本属性允许用For…Each 语法枚举该集合。
Set Newenum=mCol.[_NewEnum]
End Property
陈伟视频48
继承概念的实现方式有三类:实现继承、接口继承和可视继承。
实现继承是指使用基类的属性和方法而无需额外编码的能力;
接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
继承的实现
·继承与类的展开(flatten)
·实现
——Fiatten方法
——对象作为成员
陈伟视频49
多态
·概念
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。
·多态的作用和意义
作用:1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承
2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 // 多态的真正作用,
意义:在程序运行过程中展现出动态的特性
函数重写必须多态实现,否则没有意义
多态是面向对象组件化程序设计的基础特性
·接口与实现的关系
接口并不提供实现,并从类中被定义为单独的实体。
接口和实现是完全不一样的
接口:代表功能的集合,描述一个事物基本的功能方面
实现:一个事物如何来完成这个功能。
·多态的实现
——定义接口类
——定义实现类
——给接口添加属性
一个程序是有多个类,多个程序实现的,而类中有继承和多肽,VB又是基于多肽的。