世界观的颠覆:面向对象的思想. 女娲造“人”:对象的基本使用

这里写目录标题

  • 面向过程
    • 女娲定义“人类”:类的使用
      • 女娲造“人”:对象的基本使用

面向过程

什么是面向过程?
根据程序的执行过程,来设计软件的所有细节。

面向过程的缺点:
开发大型项目时,越来越难以把控,甚至失去控制。
后期维护、更新成本很大。

解决方案:
使用面向对象。

什么是面向对象?
不是面向对象,写代码:
世界观的颠覆:面向对象的思想. 女娲造“人”:对象的基本使用_第1张图片

面向对象是一种开发思想,一种全新的开发方式。

面向对象思想的重要性:
开发大型项目必备,是高级程序员的必备技能!
世界观的颠覆:面向对象的思想. 女娲造“人”:对象的基本使用_第2张图片

女娲定义“人类”:类的使用

面向对象编程,最重要的第一个概念:类

“人类”是一个抽象的概念,不是具体的某个人。
“类”,是看不见,摸不着的,是一个纯粹的概念.
“类”,是一种特殊的“数据类型”,不是一个具体的数据。

注意:类, 和基本数据类型(char/int/short/long/long long/float/double)不同

类的构成:方法和数据
世界观的颠覆:面向对象的思想. 女娲造“人”:对象的基本使用_第3张图片
类的设计
世界观的颠覆:面向对象的思想. 女娲造“人”:对象的基本使用_第4张图片
定义一个“人类”:
Demo

#include 
#include 
#include 

using namespace std;

// 定义一个“人类”
class Human {
     
public:  //公有的,对外的
	void eat(); //方法, “成员函数”
	void sleep();
	void play();
	void work();

	string getName();
	int getAge();
	int getSalary();

private:
	string name;
	int age;
	int salary;
};

void Human::eat() {
     
	cout << "吃炸鸡,喝啤酒!" << endl;
}

void Human::sleep() {
     
	cout << "我正在睡觉!" << endl; 
}

void Human::play() {
     
	cout << "我在唱歌! " << endl; 
}

void Human::work() {
     
	cout << "我在工作..." << endl;
}

string Human::getName() {
     
	return name;
}

int Human::getAge() {
     
	return age;
}

int Human::getSalary() {
     
	return salary;
}

int main(void) {
     
	Human  zhangshan;

	system("pause");
}

女娲造“人”:对象的基本使用

什么是对象?
对象,是一个特定“类”的具体实例。

对象和普通变量有什么区别?
一般地,一个对象,就是一个特殊的变量,但是有跟丰富的功能和用法。

什么时候使用对象?

对象的具体使用方法
demo1:

int main(void) {
     
	Human  h1; // 通过自定义的特殊数据类型“Human”类, 来创建一个“对象”
	
	// 合法使用
	h1.eat();
	h1.play();
	h1.sleep();

	// 非法使用
	//cout << "年龄" << h1.age << endl;  //直接访问私有成员,将无法通过编译

	//正确使用
	cout << "年龄" << h1.getAge() << endl; //暴露问题,年龄值是一个很大的负数

	system("pause");
}

总结:
1.“.”的使用
2.调用方法时,方法名后需要带一对圆括号()
3.通过对象,只能调用这个对象的public方法

分析:
多个不同的对象都有自己的数据,彼此无关。

demo2:

int main(void) {
     
	Human  h1; // 通过自定义的特殊数据类型“Human”类, 来创建一个“对象”
	Human *p;

	p = &h1;

	// 合法使用
	p->eat();
	p->play();
	p->sleep();

	// 非法使用
	//cout << "年龄" << p->age << endl;  //直接访问私有成员,将无法通过编译

	//正确使用
	cout << "年龄" << p->getAge() << endl; //暴露问题,年龄值是一个很大的负数

	system("pause");
}

小结:
1.-> 的使用(类似C语言的结构体用法)

你可能感兴趣的:(笔记,C++,c++,类,编程语言)