面向对象程序设计基本概念和原理

面向对象程序设计的基本概念和原理
面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的操作,对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。
消息传递:
指的是一个对象调用了另一个对象的方法(或者称为成员函数)。
1.抽象
抽取事物的共同特征就是抽取事物的本质特征,舍弃不同特征。
对特定实例进行抽象获取共同特征形成概念,对数据和行为都抽象
2.对象
对象=属性+行为;
对象是反应客观事物属性以及行为特征的描述,
每个对象都具有描述它的特征的属性和附属于它的行为。
3.类
一个共享相同结构和行为的对象的集合。
定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的(它的行为)
(类与对象之间的关系就是具体与抽象的关系
类是多个对象进行综合抽象的结果,一个对象就是类的一个实例)
4.实例
实例是根据类创建出来的一个个具体的“对象”
(类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响)
5.属性
表示类或者对象的某种特征。
属性的分类
 类属性:整个类都具备的属性。
 实例属性(对象属性):成员所具备的属性。
6.方法
也称为成员函数,是指对象上的操作,作为类声明的一部分来定义。方法定义了可以对一个对象执行那些操作
7.封装性
把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节
第一层意思:将数据和操作捆绑在一起,创造出一个新的类型的过程。
第二层意思:将接口与实现分离的过程。
8.继承性
在已有类的基础上增加新特性而派生出新的类,原有的称作基类,新建的叫做派生类
面向对象技术则是指一个对象针对于另一个对象的某些独有的特点、能力进行复制或者延续。如果按照继承源进行划分,则可以分为单继承(一个对象仅仅从另外一个对象中继承其相应的特点)与多继承(一个对象可以同时从另外两个或者两个以上的对象中继承所需要的特点与能力,并且不会发生冲突等现象)
类之间的关系,在这种关系中,一个类共享了一个或多个其他类定义的结构和行为。继承描述了类之间的“是一种”关系。子类可以对基类的行为进行扩展、覆盖、重定义。
9.多态性
是不同的对象收到相同的消息产生多种不同的行为方式。例如接受到一个“移动”的消息,在Windows类和piece类对象上可以有不同的行为
从微观的角度来讲,多态性是指在一组对象的一个类中,面向对象技术可以使用相同的调用方式来对相同的函数名进行调用,即便这若干个具有相同函数名的函数所表示的函数是不同的
10.异常处理
异常处理的基本思想是分离异常的抛出和异常的处理。基本方法是:当程序中出现异常时抛出异常,用来通知系统发生了异常,然后由系统捕捉异常,并交给预先安排的异常处理程序段来处理异常。这样的异常处理机制可以实现在两个或两个以上的程序模块间传递异常信息,从而可以使软件设计者根据问题的要求,在不同情况下灵活地处理各种异常。
1.定义异常类
2.抛出异常throw
3.捕获异常try
异常的捕获由系统自动完成
4.处理异常cathch
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.文件

12.多线程
Thread类
多线程程序的优点:
1.充分利用CPU的资源:执行单线程程序时,若程序发生阻塞,CPU可能会处于空闲状态,这将造成计算机资源浪费,而使用多线程可以在某个线程处理休眠或阻塞状态时运行其他线程,这样,大大提高了资源利用率。
2.简化编程模型:一个既长又复杂的进程可以考虑分为多个线程,成为几个独立的运行部分,如使用时、分、 秒来描述当前时间,如果写成单线程程序可能需要多重循环判断,而如果使用多线程,时、分、秒各使用一个线程控制,每个线程仅需实现简单的流程,简化了程序逻辑,这样更有助于开发人员对程序的理解和维护。
3.带来良好的用户体验:由于多个线程可以交替执行,减少或避免了因程序阻塞或意外情况造成的响应过慢现象,降低了用户等待的几率。