智能家居系统项目三 实现智能家居软件系统的高级功能1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
修饰符 private protected public
当前类 允许 允许 允许
子类 不允许 允许 允许
其他类 不允许 不允许 允许
3.多态性
多态指某个对象在编译期和运行期是不同的数据形态。多态通常表现 为:使用父类的数据类型进行声明,但却创建子类的对象,这种方式 也称为向上转型。向上转型后,该对象不可再访问父类中没有声明的 属性和方法,如果父类和子类同时写了一个方法,则会调用子类的方 法。其语法格式为:“父类类名 对象名 = new 子类类名()”,如项目 中“Dialog”类是“QDialog”的子类,可以使用“QDialog *dialog = new Dialog()”进行类的实例化。
return this->name+"正在唱歌..."; }
Qt中的对象
对象即归属于某个类别的个体,是指的具体某个事物、东西。例如:某 人家养的一只名叫“Tom”的猫,这就是一个对象。在Qt中创建对象的 步骤如下:
(1)通常创建的对象和类不在同一源文件中,因此在创建对象时,需 先引入该类或者该类所在的头文件。
this->id = id; this->name = name; this->age = age; this->sex = sex; } (3)打开“dialog.cpp”源文件,实例化“Student”类,并执行“Eat”方法,将返 回值显示在Label控件上,代码如下: Student *stu = new Student(2,"李四",18,'男'); ui->lblShow->setText(stu->Study());
项目三 实现智能家居软件系统的高级功能
01 . 实现窗口切换功能
本任务是对多窗口实现切换的功能。单击左图窗口中的“En”按 钮将页面切换至右图窗口,同时将原窗口关闭。
Qt中的类
类是一个抽象的概念,简单的说类就是种类、分类的意思。如:狗、 猫等,是对一类事物的统称,并不是指的具体某个事物。在Qt中创建 类的步骤如下:
练习
创建一个项目,在项目中定义一个学生类(Student)。在Student类中 定义四个属性:学号、姓名、年龄、性别。定义三个方法:学习、吃 饭、唱歌。
创建一个学生类Student(方法略) 打开“student.h”头文件,在“public”区域定义Student类的四个属性,代 码如下:
int id;//学号 QString name;//姓名(注意先引入QString类) int age;//年龄 char sex;//性别 在“public”再定义三个方法,返回值都为“QString”类型,代码如下: QString Study();//学习方法 QString Eat();//吃饭方法 QString Sing();//唱歌方法
(1)右击项目,选择“添加新文件”。 (2)可以选择创建“C++类”(不带图形界面)或者“Qt设计师界面 类”(带图形界面)。
(3)对类名和基类进行设置,注意类名首字母要大写。设置完成会自 动生成以类名为文件名的头文件和源文件。在头文件中有对类的声明, 格式为“class 类名”。创建好类后意味着此类以后可以作为一种新的 数据类型定义变量(需先引入该类)。
(2)创建对象分为声明和初始化两部分。声明对象与声明变量的语法 一致,格式为“类名 *变量名;”,初始化对象的过程也称为实例化,创 建的对象也可以成为“实例”。初始化对象的语法为“变量名 = new 类 名();”,对象的声明和实例化也可以在一条语句中完成,语法为“类名 *变量名 = new 类名();”。同一个可以创建若干对象。
小知识:类的三大特性
1.继承性
继承是一种利用已有的类,快速创建新类的机制,这里被继承的类称 为父类(基类),得到继承的类称为子类。通过继承,子类将拥有父 类的全部属性和方法。在Qt中,类的声明时使用如下语法实现继承: “class 类名:public 父类名”。
2.封装性
类的封装是指使用访问权限控制符对内部成员(属性和方法)进行一 定的保护。封装的目的是增强安全性和简化编程。访问权限修饰符有 “private”(私有权限)、“protected”(保护权限)、“public” (共有权限)三种
在“student.cpp”源文件中写方法。代码如下: QString Student::Study(){
return this->name+"正在学习..."; } QString Student::Eat(){
return this->name+"正在吃饭..."; } QString Student::Sing(){
练习
重写“Student”类中的构造方法,在构造方法中进行属性的初始化, 并在“dialog.cpp”中创建一个Student对象,对象的属性为学号为 “2”,姓名为“李四”,年龄为“17”,性别为“男”。
(1)打开“student.h”类头文件,在“public”区域重新声明构造方法。代码如下: Student(int id,QString name,int age,char sex); (2)打开“student.cpp”类源文件,写构造方法。代码如下: Student::Student(int id, QString name, int age, char sex){
Qt中的构造方法。
构造方法是在类的实例化的同时执行的方法,即是在“new 类名()” 的时候进行调用的方法,一般使用构造方法来对类的属性进行初始 化。构造方法的特征有:
(1)构造方法不声明方法的返回值。 (2)方法名和类名相同。 (3)构造方法可以有系统自动创建,也可以由用户手动添加。 (4)创建带有参数的构造方法,可以有效提高创建对象、初Biblioteka Baidu化属 性的开发效率。
练习
创建一个“Student”对象,对象的属性为学号为“1”,姓名为“张 三”,年龄为“16”,性别为“男”。 在构造方法中实例化Student类,并完成对象的属性和方法的操作。代 码如下:
Student *stu = new Student(); stu->id = 1; stu->name = "张三"; stu->age = 16; stu->sex = '男'; ui->lblShow->setText(stu->Study());