java面向对象总结第一部分

来源:互联网 发布:淘宝网天天特价女装 编辑:程序博客网 时间:2024/05/17 11:33
一、面向对象与面向过程
面向对象:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向过程:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
 
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。


而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。


二、面向对象和面向过程在程序中是如何实现的?
面向过程在程序中就是函数,对象就是将函数等一些内容进行了封装


三、类和对象
所谓的对象就是真实世界的一个一个实体,对象和实体是一一对应得,也就是现实世界的每一个实体都是一个对象(一切皆是对象)
类是具备某些共同特点的实体的集合,它是抽象的


四、类与对象的关系
类是对象的集合,对象是类的实例


五、面向对象的三个基本特征
封装:是指将某事物的属性和行为包装到对象中


继承:是子类对象可以继承父类对象的属性和行为,亦即父类对象拥有的属性和行为,子类对象也具有


多态:是指允许不同类的对象对同一消息作出响应
两种表现形式:重载和重写


实现多态的三个条件:①继承②重写③父类引用指向子类对象




六、变量分类:
局部变量:方法体,构造函数和块中定义的变量


实例变量:类中但是在方法体外的变量,类加载时被实例化


类变量:在类中声明,方法外,用static修饰,独立于该类的任何对象,也就是说不依赖于任何类特定的实例,随类的加载而加载,优先于对象存在


七、构造函数
构造函数:用于给对象进行初始化的
特点:1:该函数的名称与所在类名称一致
2:不需要定义返回值类型
3:没有具体的返回值
记住:所以对象创建时,都需要进行初始化才可以使用


八、方法重载与方法重写(覆盖)有什么区别呢?
重载:
1.方法重载是让类以统一的方式处理不同类型数据的一种手段。多个重名函数同时存在具有不同的参数个数/类型
2.在调用时,系统根据传递的参数选择使用哪个函数,多态


重写:
1.父类与子类之间的多态性,对于父类的函数进行重新定义
2.若子类中有与父类具有相同方法名称、返回值类型、参数列表,则新方法讲覆盖原来的方法,如需用父类原有的方法可用super关键字调用
3.子类方法的访问控制权限不能少于父类


重写方法的规则:
1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。


而重载的规则:
1、必须具有不同的参数列表;
2、可以有不同的返回类型,只要参数列表不同就可以了;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常;
0 0
原创粉丝点击