使用类编程
2016-01-11 19:13
141 查看
在oop中使用类编程的一种模型就是客户/服务器模型。客户是使用类的程序。类声明(包括类方法)则构成了服务器,他是程序可以使用的资源。类中通过共有方式定义的类方法好比服务器的接口,服务器的责任是根据接口(类方法)准确地执行,服务器设计人员(定义类的程序员)只需在对应的接口下设计类实现的细节,而不需修改接口。客户则通过接口使用服务器的资源。这样程序员可以独立地修改服务器和客户,对服务器的修改就不会影响客户行为。
为了便于程序的修改和可读性,通常,一个程序分为三个文件,头文件和两个源文件。头文件用来声明类数据及其方法,一个源文件用于定义类的方法,也就是定义服务器接口的实现细节,这样把实现细节与声明分开叫做封装;另一个用于编写主函数,也就是编写客户的行为。
类的声明包括声明数据成员和类方法(也就是接口)。类数据通常为private型,主要是为了数据隐藏。也有将函数声明为private型的,通常用于类数据的内部处理,且要在声明的时候直接定义。private类型的数据只能通过public类型的类方法调用。在外部定义函数方法时,要使用作用域解析运算符(::)来标示函数所属的类。有了作用域解析运算符,我们就可以将不同的类方法的名称取为同一个。
在程序中使用类时,可以使用声明类变量或者使用new为类对象分配存储空间来创建类对象。在使用类方法时,要通过类对象来调用,此时要使用成员运算符据点(.)。
由于类的数据是private型,只能通过成员函数来访问。因此,在创建类变量时,就不能对其进行初始化。构造函数则用来将数据复制给数据成员。构造函数的名称与类名称相同(同时,构造函数的参数名不要与类成员名相同)。每个类可以通过函数重载创建多个同名的构造函数,但每个构造函数的参数列表必须不同。默认的构造函数没有参数。如果程序没有定义任何构造函数,编译器将为程序定义一个默认构造函数。每个类只能有一个析构函数,其名称为类名称前加上~。
如果需要创建同一个类的多个对象,则可以创建对象数组。对对象数组的初始化,应使用构造函数为每个元素进行初始化。若定义了多个构造函数,则可以对不同的元素使用不同的构造函数。
this指针:
类作用域:
抽象数据类型:
为了便于程序的修改和可读性,通常,一个程序分为三个文件,头文件和两个源文件。头文件用来声明类数据及其方法,一个源文件用于定义类的方法,也就是定义服务器接口的实现细节,这样把实现细节与声明分开叫做封装;另一个用于编写主函数,也就是编写客户的行为。
类的声明包括声明数据成员和类方法(也就是接口)。类数据通常为private型,主要是为了数据隐藏。也有将函数声明为private型的,通常用于类数据的内部处理,且要在声明的时候直接定义。private类型的数据只能通过public类型的类方法调用。在外部定义函数方法时,要使用作用域解析运算符(::)来标示函数所属的类。有了作用域解析运算符,我们就可以将不同的类方法的名称取为同一个。
在程序中使用类时,可以使用声明类变量或者使用new为类对象分配存储空间来创建类对象。在使用类方法时,要通过类对象来调用,此时要使用成员运算符据点(.)。
由于类的数据是private型,只能通过成员函数来访问。因此,在创建类变量时,就不能对其进行初始化。构造函数则用来将数据复制给数据成员。构造函数的名称与类名称相同(同时,构造函数的参数名不要与类成员名相同)。每个类可以通过函数重载创建多个同名的构造函数,但每个构造函数的参数列表必须不同。默认的构造函数没有参数。如果程序没有定义任何构造函数,编译器将为程序定义一个默认构造函数。每个类只能有一个析构函数,其名称为类名称前加上~。
如果需要创建同一个类的多个对象,则可以创建对象数组。对对象数组的初始化,应使用构造函数为每个元素进行初始化。若定义了多个构造函数,则可以对不同的元素使用不同的构造函数。
this指针:
类作用域:
抽象数据类型:
相关文章推荐
- javaweb学习总结(四十三)——Filter高级开发
- 一些项目和代码
- Java环境变量配置
- javaweb学习总结(三十七)——获得MySQL数据库自动生成的主键
- javaweb学习总结(三十六)——使用JDBC进行批处理
- Using Databases with Python - Many students in many courses (produce database from json file)
- 高级并发编程学习-callable与Future的使用
- 栈,堆,全局,文字常量,代码区总结
- python学习之使用mysql
- iOS第五天 C语言 函数
- python 中的yield
- Using Databases with Python -Musical Track Database (produce database from XML file)
- Qt5.5显示图片
- SpringMVC中用@ParamVariable传递的参数包含斜杠(/)时,匹配不了报404错误的解决方案
- (转)我对Java Serializable(序列化)的理解和总结
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
- git 一般的开发流程中的代码管理
- C#基础回顾(一)—C#访问修饰符
- log4cpp安装使用
- java-getClass().getResource()与getClassLoader().getResource()