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()<<"\t"<<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);
posted @ 2018-02-17 23:21  fzu_Y  阅读(204)  评论(0编辑  收藏  举报