接口与实现的分离 软件工程的一个最基本的原则:接口与实现 分离 .h文件与.cpp文件分离 类的定义与类的实现分离 但是Java中类的定义与实现是在一起的, Why? 秦因为Java中有一个专门管接口的类叫 Interface。这 个类是公开的,而其他类则酸屏蔽起多 这种方式称为对象的“包装”或称“封
接口与实现的分离 软件工程的一个最基本的原则:接口与实现 分离 .h文件与.cpp文件分离 类的定义与类的实现分离 但是Java中类的定义与实现是在一起的, Why? 因为Java中有一个专门管接口的类叫Interface。这 个类是公开的,而其他类则被屏蔽起来。 这种方式称为对象的“包装”或称“封 装”
§控制对成员的访问 public:; private:( protected:)都是用来控制 成员函数的作用。 类的客户可通过公有成员( public)知道类提供什么样的服务。 类的客户不能直接访问类的私有成员( (private),它们只能 通过成员函数(或友元)来访问。 C++提倡编写与实现无关的程序。在类定义中尽量避免写函 数实现的代码。(也不是绝对的,只要觉得可以公开,并以 后不会改动,则可以将实现写到类的定义中) [注意]在理论上 public:; private: protected:只使用 次。但现在C+编译器(如VC++)可支持多次。而在Java中每 个函数前面都要求加上这个说明符
public:, private: ( protected: ) 都是用来控制 成员函数的作用。 类的客户可通过公有成员(public)知道类提供什么样的服务。 类的客户不能直接访问类的私有成员(private),它们只能 通过成员函数(或友元)来访问。 C++提倡编写与实现无关的程序。在类定义中尽量避免写函 数实现的代码。(也不是绝对的,只要觉得可以公开,并以 后不会改动,则可以将实现写到类的定义中) [注意]在理论上 public:, private: protected: 只使用一 次。但现在C++编译器(如VC++)可支持多次。而在Java中每 一个函数前面都要求加上这个说明符。 § 控制对成员的访问
§软件的可重用性 面向对象的程序设计的一个重要目标就是软件 的可重用性。 可重用性意味着以前的代码可以部分加以利用, 并对其余部分改写,以免整个程序重新编写 要实现可重用性,程序必须设计良好、具有较 好的可读性,并预先把需要扩展部分考虑好
§ 软件的可重用性 面向对象的程序设计的一个重要目标就是软件 的可重用性。 可重用性意味着以前的代码可以部分加以利用, 并对其余部分改写,以免整个程序重新编写。 要实现可重用性,程序必须设计良好、具有较 好的可读性,并预先把需要扩展部分考虑好
函数原型( prototype)的作用域 豪函数原型中的参数,其作用域仅限于声明中 秦例如,设有下列原型声明: double Area(double radius) radius的作用域仅在于此,不能用于程序正文其他地方,因而 可有可无。可以写成: double Area(double) * double Area (double radius=5) 可简化成 double area( double=5);
函数原型(prototype)的作用域 函数原型中的参数,其作用域仅限于声明中。 例如,设有下列原型声明: double Area(double radius); radius 的作用域仅在于此,不能用于程序正文其他地方,因而 可有可无。可以写成: double Area(double); double Area(double radius=5); 可简化成 double Area(double =5);
块作用域 在块中声明的标识符,其作用域自声明处起, 限于块中,例如: void fun (int a) int b(a) cin >> b if (b>0) b int ci c的作用域 的作用域 a的作用域
块作用域 在块中声明的标识符,其作用域自声明处起, 限于块中,例如: void fun(int a) { int b(a); cin >> b; if (b>0) { int c; ...... } } a 的 作 用 域 b 的 作 用 域 c 的 作 用 域