第13.14.15.16课.类

第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\n", i);              // i = 2; 局部变量
	printf("::i = %d\n", ::i);          // ::i = 1; 使用默认命名空间中的i。即全局变量i
	// printf("test.i = %d\n", test.i);    // Error   私有的不能使用
	printf("test.j = %d\n", test.j);    // test.j = 4
	printf("test.getI() = %d\n", 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\n", a.getI());
	
	b.i = 4;
	
	printf("b.getI() = %d\n", b.getI());
	
	return 0;
}
posted @ 2019-11-05 17:01  人民广场的二道贩子  阅读(131)  评论(0)    收藏  举报