学习目标
学习面向对象思想以及类的基本内容以及编写一个学生类
学习内容
1、面向过程和面向对象的思想区别:
(1)面向过程: 思想关键在于一步一步去完成,首先搞清楚做什么,在分析怎么做,
最后通过代码体现出来;其中关键是文明要面对每一个步骤和过程;
(2)面向对象: 尽可能模拟人类的思维方式去解决问题,使得软件的开发和解决问题过程更加接近人类认识世界、解决问题的方式;核心是对象,思想由一系列对象组成
比如:洗衣服
(1)面向过程:1、往盆里接水2、放入衣服3、加入洗衣粉4、浸泡一会5、搓一搓6、取出过水7、拧干衣服8、晒衣服
(2)面向对象:1、把衣服放入洗衣机2、加入洗衣粉3、开启洗衣机4、晒衣服
2、面向对象编程(OOP)的重要特性:(面试常考,必须记住!!!)
1、抽象
2、封装和数据隐藏
3、多态
4、继承
5、代码的可重用性
3、抽象和类
描述世界的事物:1、属性(描述信息)2、行为(能够干什么)
类:将抽象转换为用户定义的类型的工具,将数据表示和操纵数据的方法整合在一起的包
(1)属性->成员变量
(2)行为->成员方法
类一般由两部分组成:
1、类声明
2、类方法定义
c++使用类用关键字class
学习代码
(以下为初学类的编写方式)
👀main.cpp
#include<iostream>
#include"student.h"
using namespace std;
int main()
{
Student s1;
s1.m_name = "xiaoming";
s1.m_age = 20;
s1.m_number = 1002;
cout << s1.m_name << '\t' << s1.m_age << '\t' << s1.m_number << endl;
s1.eat();
s1.sleep();
s1.study();
//创建内存方式
Student* st1=new Student;
st1->m_age = 10;
cout << st1->m_age << endl;
return 0;
}
👀student.cpp
#include<iostream>
#include"student.h"
using namespace std;
void Student::eat() {
cout << "学生吃饭了" << endl;
}
void Student::sleep() {
cout << "学生睡觉了" << endl;
}
void Student::study() {
cout << "学生学习了" << endl;
}
👀student.h
#pragma once
#include <iostream>
#include<string>
using namespace std;
class Student
{
public:
string m_name;
int m_age;
int m_number;
void eat();
void sleep();
void study();
};