第3章类的基础部分 陈哲副教授 南京航空航天大学计算机科学与技术学院
1 第 3 章 类的基础部分 陈哲 副教授 南京航空航天大学 计算机科学与技术学院
311过程化程序设计的缺陷 出现大量的全局变量; 程序复杂:程序员难以理解成百上千的函数; 程序难以进行修改和扩充
2 3.1.1 过程化程序设计的缺陷 • 出现大量的全局变量; • 程序复杂: 程序员难以理解成百上千的函数; • 程序难以进行修改和扩充
312面向对象程序设计的基本思想 OOP以对象为中心,把数据和对数据的操作封 装在一起 数据成员 过程化设计是以过程为中心(函数)awh float length i 面向对象设计是以对象为中心 float area 函数成员 Example: sedAt a(){……} calculateArea getwidth( getLength( getArea(){…}
3 3.1.2 面向对象程序设计的基本思想 • OOP 以对象为中心,把数据和对数据的操作封 装在一起 • 过程化设计是以过程为中心 (函数) • 面向对象设计是以对象为中心 • Example:
32类的基本概念 类是一种用户自定义类型,声明形式: class类名 变量和函数的声明; ●●●●●● 例如:
4 3.2 类的基本概念 类是一种用户自定义类型,声明形式: class 类名 { 变量和函数的声明; …… } ; 例如:
成员变量 float width: float length 属性 float area: 成员函数 setData(){…} calcarea get width(){…… 方法 getLength({……} getArea(){…
成员变量 float width ; float length ; float area ; 成员函数 setData( ) { …… } calcArea( ) { …… } getWidth( ) { …… } getLength( ){ …… } getArea( ) { …… } 属性 方法
class Rectangle 日日日日日量日日日日a■ 默认情况下类的成员是私有 float width;;的,而结构体trme中的成 float length:员是公有的 float area void setData(float, float); void calcArea(; float getwidth(; float getLength(; float getArea()
class Rectangle { float width; float length: float area; void setData(float, float); void calcArea( ); float getWidth( ); float getLength( ); float getArea( ); }; 默认情况下类的成员是私有 的,而结构体(struct)中的成 员是公有的
32类的基本概念(续) 为了使类的成员能够在类外面被访问,其 成员必须定义为 public ° Example:
7 3.2 类的基本概念(续) • 为了使类的成员能够在类外面被访问,其 成员必须定义为public. • Example:
class Rectangle private float width: float length: float area: public: void setData(float, float); void calcArea(; float getwidth ( float getlength(; float getArea()
class Rectangle { private: float width; float length: float area; public: void setData(float, float); void calcArea( ); float getWidth( ); float getLength( ); float getArea( ); };
class Rectangle public: void setData(float, float); oid calcArea(; float getwidth( float getlength(; float getArea(; rivate pI float width float length: float area:
class Rectangle { public: void setData(float, float); void calcArea( ); float getWidth( ); float getLength( ); float getArea( ); private: float width; float length: float area; };
class Rectangle private float width public: void setData (float, float); void calcArea(; float getWidth (; float getLength(; float getArea(; private float length: float area:
class Rectangle { private: float width; public: void setData(float, float); void calcArea( ); float getWidth( ); float getLength( ); float getArea( ); private: float length: float area; };