• OOP 1.5 类和对象的基本概念与用法1


    1、定义

    • 面向对象的基本特点:抽象、封装、继承、多态
    • 面向对象程序设计方法:将某类客观事物的共同特点归纳出来,形成一个数据结构
    • 抽象:将事物所能进行的行为归纳出来,形成一个个函数,这些函数可以用来操作数据结构
    • 通过某种语法,将数据结构和操作该数据结构的函数捆绑在一起,形成一个
    • 封装:使得数据结构和操作该数据结构的算法呈现出显而易见的紧密关系

    2、实例:编写程序,输入长和宽 计算面积和周长

    • 三个行为:设置长宽、计算面积、计算周长
    • 三个函数封装在一起,形成一个矩形类
    • 长、宽成为矩形类的成员变量,三个函数称为成员函数。成员变量和成员函数称为类的成员
    • 待解决问题:class和struct的关系和区别
    class CRectangle//这里的class可以用struct代替
    {
        public:
            int w,h;
            int a()
        {
            return w*h;
        }
        int p()
        {
            return 2*(w+h);
        }
        void init(int w1, int h1)
        {
            w=w1;h=h1;
        }
    };//最后要有分号
    
    int main()
    {
        int w,h;cin>>w>>h;
        CRectangle r;
        r.init(w,h);
        cout<<r.a()<<"	"<<r.p()<<endl;
        return 0;
    }
    

    3、对象的内存分配

    • 和结构变量一样,对象占用内存大小等于所有成员变量大小之和
    • 成员函数只占用一份存储空间,被所有对象共享,不会放入对象里面,对象只包含成员变量,不包含成员函数

    4、对象间的运算

    • 对象仅可以使用“=”进行赋值,不可以使用比较运算,除非重载

    5、使用类的成员变量和成员函数

    • 法1:对象名.成员名
      e.g.Crectangle r1,r2;r1.w=5;r2.init(5,4);
    • 法2:指针->成员名
      e.g.
    Crectangle r1,r2;
        Crectangle *p1=&r1;Crectangle *p2=&r2;
        p1->w=5;
        p2->init(5,4);
    
    • 法3:引用名.成员名
      e.g.
    Crectangle r2;
    Crectangle &rr=r2;
    rr.y=5;
    rr.init(5,4);
    
  • 相关阅读:
    Nginx URL后面不加斜杠301重定向
    Jenkins 配置 Node.js 项目
    在 Linux 上搭建IntelliJ IDEA license server服务器
    Vue 使用细节收集
    sinopia 搭建记录
    cli 开发记录
    Cgroup(一)简介
    Kubernetes (一)POD驱逐
    RabbitMQ(五)镜像队列
    RabbitMQ(四)队列结构
  • 原文地址:https://www.cnblogs.com/fzu-031702148/p/8452332.html
Copyright © 2020-2023  润新知