Java语言基础篇(四)
一、面向对象程序设计
1、概念
面向对象程序设计(OOP
,Object Oriented Programming
),是一种计算机编程架构,由对象所组成,对用户公开特定的功能部分,隐藏具体的实现内容,即它不关心对象的具体实现,只需满足用户的需求即可。面向对象的重点是类
和对象
。
2、面向对象的三大特性
- 封装
- 继承
- 多态
- 抽象(面试时,假如面试官问到面向对象的四大特性有哪些,就把抽象也给回答上)
二、封装
1、定义
封装是面向对象三大特性之一,它将数据(属性)和行为(方法)组合在一个类中,对对象的调用者隐藏数据的实现方式,它不能让类中的方法直接访问其他类中的实例域,而是通过对象的方法与对象的数据进行交互。
2、作用
封装的作用:
- 给对象赋予“黑盒”特性
- 提高代码的重用性(
复用
)和可靠性(安全
)
3、访问修饰符
- 定义:访问修饰符又可以叫做权限修饰符,可以用来修饰类、成员变量和成员方法。
- 分类:
- default
- private
- protected
- public
- 访问修饰符的作用范围
修饰符 | 当前类 | 同一包 | 子类(可不同包) | 不同包 |
---|---|---|---|---|
private | √ | |||
default | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
4、其他修饰符
- final修饰符
final修饰符可以修饰类、方法及变量,表示“最终” 的意思。
① final修饰的类不能继承,其中所有方法自动升为final方法,不包括域(属性),如String类,StringBuffer等。
② final修饰的方法不能被子类重写。
③ final修饰的变量为常量,只能赋值一次,不能再次修改。
④ final修饰的成员变量必须在声明的同时进行赋值,赋值机会只有一次,即在构造方法中进行赋值才能使用。 - static修饰符
static修饰符可以修饰方法及变量,表示“静态”的意思。
静态成员变量属于类,不属于任何独立的对象,因此无需创建类的实例就可以访问到静态成员变量。static的变量在类装载时便被初始化。
① 一个类的静态成员方法只能访问静态成员变量。
② 一个类的静态成员方法不能够直接调用非静态成员方法。
③ 可以通过类的实例.静态成员方法
来进行访问,但不推荐这样使用;
④ 静态方法中不存在当前对象,因此不能使用this
,当然也不能使用super
;
⑤ 静态方法不能被非静态方法覆盖;
⑥ 构造方法不允许声明为 static 的;
⑦ 局部变量不能使用static修饰。 - this修饰符
this用来表示当前类的实例。
作用:
① 在构造方法中作为方法名表示调用当前类的其他构造方法。
② 调用当前类的其他成员变量或者成员方法。 - super修饰符
super是一个指示编译器调用超类方法的特殊关键字。
作用:
① 调用父类中声明为private的变量。
② 调用在子类中已被覆盖的方法。
③ 作为方法名表示父类构造方法。
三、类和对象
1、类
-
定义:类是对现实生活中一类具有
共同属性
和行为
的事物的抽象,是构造对象的模板
,是Java程序的基本组成单位
。 -
本质:
- 类是对象的
数据类型
。 - 类是相同
属性
和行为
的一组对象集合。
- 类是对象的
-
类的组成
- 属性:在类中通过
成员变量
(类中方法外的变量)来实现。 - 行为:在类中通过
成员方法
来实现。
- 属性:在类中通过
-
识别类的简单规则:分析问题然后寻找名词,成员方法可以查找问题中出现的动词。
-
类的定义
格式:public class 类名 { //成员变量 数据类型 变量名; ... //成员方法 数据访问修饰符 返回的数据类型 方法名() { } }
例子:
public class User { //成员变量 private String name; private Integer age; //成员方法 public String eat() { System.o