本次学习计划部分知识点总结
一、类和对象
1、成员变量:private(默认),protected[继承时考虑],public
2、成员函数:重载成员函数 调用成员函数(对象调用,指针传递调用,引用传递调用) 在成员函数中访问访问成员变量(a)加this,(b)不加this
3、类的作用域:类成员变量与成员函数里局部变量重名,局部变量此刻看不见类成员变量
可见性:1、类名与变量名一样, 2、类名与函数名一样 3、类名与成员函数名一样是构造函数
二、冒泡排序 是一种排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 冒泡排序,作为最基本的排序算法,由于原理像冒泡一样,所以取名为冒泡排序;我们知道,水泡在上升时,总是密度最小的最先上去,假如一个水层只能容纳一个水泡,那么水泡由上到下的排序就是密度逐渐增大的排序。类似的,我们可以实现一个相似的排序算法,冒泡排序。 原理图如下: 代码为: #include #include <math.h>//待会会用到swap交换函数 using namespace std; int main() {
int a[5]; //输入数据 for(int i=0;i<5;i++) { cin>>a[i]; } //排序 for(int i=0;i<4;i++) { for(int j=0;j<4-i;j++)//将已经升到最高位的剔除 { if(a[j]>a[j+1])swap(a[j],a[j+1]); } } //输出数据 for(int i=0;i<5;i++) { cout<<a[i]<<" "; } return 0; }
三、引用 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明: (1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进行初始化。 (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。 ra=1; 等价于 a=1; (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。 (6)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。
四、继承 继承是面向对象三大特征之一,java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类成为子类 继承使用关键字extends关键字来描述。在java里面只支持单继承及一个类只能有一个父类,子类可以继承的非private修饰的成员方法和成员变量,构造方法不能被继承,java中的继承和生活中的继承颇为相似,现实生活中一个儿子只能有一个父亲,儿子可以继承父亲的房子车子但是不能继承父亲打闹里面的思想和知识。如果一个类没有显示的继承其他类,那么这个类会默认继承object类 object是sun公司提供的java中的根类
继承的优点: 提高代码的复用性 提高代码的维护性 让类与类之间产生关系,是多态的前提
继承的缺点: 增强了类之间的耦合 软件开发的一个原则是高内聚、低耦合 内聚是一个模块内各个元素彼此结合的紧密程度 耦合是一个软件里面不同模块之间的互相连接的数量
|