一.面向对象语言的三大特征 封装 继承 多态
1.封装
封装的概念
使用private方法把类中成员变量修饰。
封装:初始化,打印棋盘,判断坐标,判断输赢 把一个功能封装成一个方法,调用方法,封装--包装。
面向对象中的封装:将类中的某些信息隐藏起来。
如果不隐藏起来,可以在任何地方访问(获取值,赋值),代码没有办法对其进行控制。
所以应该将某些信息隐藏起来,不让外界直接访问,可以向外界提供一种方法,通过特定方法来进行访问。
使用访问权限修饰符来对类中的信息进行访问权限控制。
封装案例:将成员变量私有化,对方法进行私有化
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问。 而是通过该类提供的方法来实现对隐藏信息的操作和访问 。
单例模式(解决一类问题的固定写法)
让一个类在整个程序中,只能创建一个对象。
封装的好处
(1)只能通过规定方法访问
(2)隐藏实现类的细节
(3)方便加入控制语句
(4)方便修改实现
2 继承
继承:子继承父 子就可以拥有父亲的部分功能。子还可以在父的功能是进行扩展。
提高代码的复用性。
提高功能的扩展性。
使用extends 关键字
继承基本语法
什么样的类与类的关系可以使用继承
属于同一类,是xxx是xxx的关系。
将子类的共有属性和行为放在父类之中
特征
继承是从已有的类中派生出新类,新的类能吸收已有类的属性和行为,并扩展新的能力。
java不支持多继承,单继承java的继承关系很简单,一个类只能有一个直接父类。
继承后子类可以调用父类的所有非私有属性和非私有方法。
3.super关键字用途
使用super关键字访问父类成员
用super加括号表示访问父类中的构造方法
用super.方法名访问父类中的方法
this关键字,在类中表示当前正在使用的对象
创建子类对象时,并不会创建父类对象,只是将父类中的成员加载在子类的对象空间中.
4.抽象类
抽象方法:一个只有方法结构,没有方法体的方法。
public void eat();
抽象方法是一种特殊的方法:只有声明,没有具体实现
必须使用abstract修饰。
一个类没有足够的信息来描绘一个具体的对象,这样的类就是抽象类
抽象类不能拿来创建对象
如果一个类中包含抽象的方法那么这个类就是抽象类。
抽象类除了不能创建对象以外,其他功能正常(包含成员变量构造方法,成员方法)
主要在类体系设计的顶层进行定义。
抽象类,抽象方法,在软件开发过程中都是设计层面的概念。也就是说, 设计人员会设计出抽象类,抽象方法,程序员都是来继承这些抽象类并 覆盖抽象方法,实现具体功能。
5.多态
同一种事物在不同时刻表现不同的状态。
父类 可以表示不同子类对象
形成多态关系
类与类直接必须要有继承关系
父类的引用指向子类对象(编译看左边 运行看右边,编译看左边,运行也看左边)
提高程序的灵活的扩展性。添加一个同类型事物,不需要去改动原来的代码。