第13课.进阶面向对象(上)
1.类和对象基本概念
类 :是指一类事物,是一个抽象的概念。用于描述一类事物所特有的属性和行为。
对象:指的是属于某个类的具体实体。拥有所属类中描述的一切行为和行动。
类是一种模型,这种模型可以创建出不同的对象实体;对象实体是类模型的一个具体实例。
(类是一个概念,对象是根据这个概念产生的一个具体事物)
第14课.进阶面向对象(下)
1.类之间的基本关系
a.继承
从已存在类细分出来的类和原来类之间具有继承关系;继承的类(子类),拥有原类(父类)的所有属性和行为。
b.组合
一些类的存在必须依赖于其他的类,这种关系叫组合;组合的类在某一个局部上由它的类组成。(整体和部分的关系)
第15课.类与封装的概念
1.c++中类的封装
成员变量:c++中用于表示类属性的变量
成员函数:c++中用于表示类行为的函数
c++中可以给成员变量和成员函数定义访问级别。
public :成员变量和成员函数可以在类的内部和外界访问和调用。
private:成员变量和成员函数只能在类的内部被调用和访问。
eg:
#include <stdio.h>
int i = 1; //全局变量
struct Test
{
private: //私有
int i;
public: //公共
int j;
int getI()
{
i = 3;
return i;
}
};
int main()
{
int i = 2; //局部变量
Test test; //定义对象
test.j = 4;
printf("i = %d
", i); // i = 2; 局部变量
printf("::i = %d
", ::i); // ::i = 1; 使用默认命名空间中的i。即全局变量i
// printf("test.i = %d
", test.i); // Error 私有的不能使用
printf("test.j = %d
", test.j); // test.j = 4
printf("test.getI() = %d
", test.getI()); // test.getI() = 3
return 0;
}
第16课.类的真正形态
问题:经过不断的改进,结构体struct越来越不像它在c语言中的样子了?c++中struct既能定义一个结构体又能定义类。
1.类的关键字
c++中提供了新的关键字class用于定义类。class和struct的用法完全相同。
区别:
在用struct定义类时,所有成员的默认访问级别为public;
在用class定义时,所有成员的默认访问级别为private;
eg:
#include <stdio.h>
struct A
{
// defualt to public
int i;
// defualt to public
int getI()
{
return i;
}
};
class B
{
// defualt to private
int i;
// defualt to private
int getI()
{
return i;
}
};
int main()
{
A a;
B b;
a.i = 4;
printf("a.getI() = %d
", a.getI());
b.i = 4;
printf("b.getI() = %d
", b.getI());
return 0;
}