04_类和对象
Posted eokey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了04_类和对象相关的知识,希望对你有一定的参考价值。
一:类和对象基本概念
1.1 基本概念
1)类、对象、成员变量、成员函数
2)面向对象三大概念
封装、继承、多态
3)编程实践
类的定义和对象的定义,对象的使用
求圆形的面积
1.2 类的封装
1) 封装(Encapsulation)
A)封装,是面向对象程序设计最基本的特性。把数据(属性)和函数(操作)合成一个整体,这在计算机世界中是用类与对象实现的。
B)封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
备注:有 2 层含义(把属性和方法进行封装 对属性和方法进行访问控制)
C++中类的封装
成员变量, C++中用于表示类属性的变量
成员函数, C++中用于表示类行为的函数
2)类成员的访问控制
在 C++中可以给成员变量和成员函数定义访问级别
Public 修饰成员变量和成员函数可以在类的内部和类的外部被访问
Private 修饰成员变量和成员函数只能在类的内部被访问
//类是把属性和方法封装 同时对信息进行访问控制
//类的内部,类的外部
//我们抽象了一个类,用类去定义对象
//类是一个数据类型,类是抽象的
//对象是一个具体的变量。。占用内存空间。
class Circle
{
//类的内部,类的外部
//我们抽象了一个类,用类去定义对象
//类是一个数据类型,类是抽象的
//对象是一个具体的变量。。占用内存空间。
class Circle
{
private:
int a;
public:
double r;
double s;
public:
double getR()
{
a++;
return r;
}
void setR(double val)
{
r = val;
}
public:
double getS() //增加功能时,是在修改类, 修改类中的属性或者是方法
{
s = 3.14f*r*r;
return s;
}
};
int a;
public:
double r;
double s;
public:
double getR()
{
a++;
return r;
}
void setR(double val)
{
r = val;
}
public:
double getS() //增加功能时,是在修改类, 修改类中的属性或者是方法
{
s = 3.14f*r*r;
return s;
}
};
3) struct 和 class 关键字区别
在用 struct 定义类时,所有成员的默认属性为 public
在用 class 定义类时,所有成员的默认属性为 private
在用 struct 定义类时,所有成员的默认属性为 public
在用 class 定义类时,所有成员的默认属性为 private
1.3 对象的构造和析构
前言
创建一个对象时,常常需要作某些初始化的工作,例如对数据成员赋初值。 注意,类的数据成员是不能在声明类时初始化的。
为了解决这个问题, C++编译器提供了构造函数(constructor)来处理对象的初始化。 构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。
以上是关于04_类和对象的主要内容,如果未能解决你的问题,请参考以下文章