当前位置:   article > 正文

05- 类和对象_生活中类和对象的例子

生活中类和对象的例子

面向对象

将日常生活中习惯的思维方式引入程序设计中,将需求中的概念直观的映射到解决方案中。
以模块为中心构建可复用的软件系统,提高软件产品的可维护性和可扩展性
  • 1
  • 2

C++类和对象

C++是一门面向对象的编程语言,理解 C++,首先要理解**类(Class)对象(Object)**这两个概念

生活中的类和对象

:指的是一类事物,是一个抽象的概念。类是一种模型,这种模型可以创建出不同的对象实体。
  • 1
对象
对象实体是类模型的一个具体实例,对象:指的是属于某个类的具体实体。
  • 1

C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同,可以通过结构体来定义结构体变量,每个变量拥有相同的性质。

代码示例

#include <stdio.h>

//定义结构体 Student
struct Student{
    //结构体包含的成员变量
    char *name;
    int age;
    int score;
};

// 声明函数
void show(struct Student *);

int main(){
    struct Student stu;
    //为成员变量赋值
    stu.name = "curry";
    stu.age = 10;
    stu.score = 98;
    //调用函数
    show(&stu);
    return 0;
}

//结构体的成员变量
void show(struct Student *pst){
    printf("%s的年龄是 %d\n,成绩是 %d\n", pst->name, pst->age, pst->score);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

代码运行结果

curry的年龄是10,成绩是98
  • 1

C++ 中的类也是一种构造类型,但是进行了一些扩展,类的成员不但可以是变量,还可以是函数。通过类定义出来的变量叫做“对象”。

代码示例

#include <iostream>
/**
 * 类和对象
 */
using namespace std;

//通过class关键字定义学生类
class Student{
public:
    // 定义变量
    char *name;
    int age;
    float score;
    // 声明函数
    void say(){
        // 输出结果
        cout << name << "的年龄是:" << age <<", 成绩是:" << score << endl;
    }
};
int main() {
    //创建对象
     Student stu;
    //为类的成员变量赋值
    stu.name = "curry";
    stu.age = 10;
    stu.score = 92.5f;
    //调用函数
    stu.say();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

类之间的基本关系

类的封装

  1. 把变量(属性)和函数(操作)合成一个整体,封装在一个类中。
  2. 对变量和函数进行访问控制。
访问权限
  1. 在类的内部(作用域范围内),没有访问权限之分,所有成员可以相互访问。
  2. 在类的外部(作用域范围外),访问权限才有意义:public,private,protected。
  3. 在类的外部,只有public修饰的成员才能被访问,在没有涉及继承与派生时, private和protected是同等级的,外部不允许访问。
访问属性属性对象内部对象外部
public公有可访问可访问
protected保护可访问不可访问
private私有可访问不可访问

代码示例

#include <iostream>
/**
 * 类的封装
 */
using namespace std;

// 创建类Person
class Person{
public: // 公共权限
    string name; // 姓名
protected: // 保护权限
    string car;
private: // 私有权限
    int password;

public:
    void function(){
        /**
         * 所有权限类内都可以访问
         */
         name = "curry";
         car = "小学生跑车";
         password = 123446;
    }
};

// 声明函数
void test(){
    // 创建对象
    Person p;
    p.name = 'kobe';
    // p.car = "法拉第";  保护权限,在类外不可以访问
    // p.password = 134566; 私有权限,在类外不可以访问
}

int main() {
    cout << "Hello, World!" << endl;
    // 调用函数
    test();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
成员属性设置

使用成员函数可使得我们对变量的控制处理更加精细。

代码示例

#include <iostream>
/**
 * 将成员属性设置成私有属性
 */
using namespace std;

// 创建Person类
class Person{
public:
    // 设置姓名
    void setName(string name){
        myName = name;
    }
    // 获取姓名
    string getName(){
        return myName;
    }
    // 设置年龄
    void setAge(int age){
        // 检测年龄
        if(age < 0 || age > 30){
            cout << "不好意思,你不是学生了" << endl;
            return;
        }
        myAge = age;
    }

    // 获取年龄
    int getAge()
    {
        return myAge;
    }
private:
    string myName;  // 姓名
    int myAge = 18;
};

// 声明函数
void test(){
    // 创建对象
    Person p1;
    // 对于姓名,可以设置也可以获取
    p1.setName("curry");
    cout << "p1的姓名是:" << p1.getName() << endl;

    // 年龄的是只读状态,不可以设置
    p1.setAge(55);
    cout << "p1的年龄为:" << p1.getAge() <<endl;
}
int main() {
    // 调用函数
    test();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

程序运行结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/244287?site
推荐阅读
相关标签
  

闽ICP备14008679号