面向对象
对象
- 万物皆对象
-
面向对象
人关注对象
-
类
类是模子,确定对象将会拥有的特征(属性)和行为(方法)
类的特点
类是抽象的概念,仅仅是模板
- 对象是一个你能够看得到、摸得着的具体实体
- 类是对象的类型
- 对象是特定类型的数据
-
单一职责原则
单一职责原则,也称为单一功能原则
- 英文Single Responsibility Principle 缩写SRP
- 是面向对象设计的一个重要原则
- 一个类,应该有且只有一个引起变化的原因
在程序设计中,尽量把不同的职责放在不同的职责中,即把不同的变化原因封装到不同的类中
对象实例化
实例化对象的过程可以分为两部分:
声明对象 Cat one
- 实例化对象 new Cat()
- Cat one = new Cat()
每次new对象会产生新的实例化对象:
- Cat one = new Cat()
- Cat two = new Cat()
多个对象可以指向同一块实例化空间:
- Cat one = new Cat()
- Cat two = one
对象必须实例化之后才能使用。
对象间的引用传递,实际上是传递堆空间的使用权。
构造方法
- 构造方法与类同名且没有返回值
- 构造方法的语句格式
- 只有在对象实例化的时候才调用
- 当没有指定特定的构造方法,系统会默认添加一个无参构造方法
- 当有指定特定的构造方法,无论有参无参,都不会自己添加无参的构造方法
一个类可以有多个构造方法
public 构造方法名(){
//初始化代码
}
this关键字
this:当前对象的默认引用
this的使用
将类的某些信息隐藏在类的内部,不允许外部程序直接访问
- 通过该类提供的方法对隐藏的信息的操作和访问
- 隐藏对象的信息
- 留出访问的接口
- 只能通过规定的方法访问数据
-
包
作用
- 管理Java文件
- 解决同名文件冲突
- 定义包
- package 包名;例:package com.zhang.animal;
- 必须放在Java源文件的第一行
- 一个Java源文件只能有一个package语句
- 包名全部英文小写
- 命名方式:域名倒叙+模块+功能
- 导入包
- 导入包中全部类:import com.zhang.*;
- 导入包中指定类:import com.zhang.animal.Cat;
常用系统包
static+属性—-静态属性
- static+方法—-静态方法
- static+类 —- 不存在
- static+方法内部属性—-不存在
静态方法
代码块执行顺序:
- 代码复用
- 缩短开发周期
介绍
规则
- 在子类中定义
- 方法名
- 参数类型、顺序、个数
方法重写VS方法重载
公有的:public
- 受保护的:protected
- 默认
- 私有的:private | 访问修饰符 | 本类 | 同包 | 子类 | 其他 | | —- | —- | —- | —- | —- | | private | √ | | | | | 默认 | √ | √ | | | | protected | √ | √ | √ | | | public | √ | √ | √ | √ |
super
- 子类访问父类成员
- 访问父类成员方法super.print();
- 访问父类属性super.name;
- 访问父类构造方法super();
- super
- 子类的构造方法调用过程中必须调用父类的构造方法
- 没有显示调用,系统会默认调用父类的构造方法
- 没有显示调用并且父类没有构造方法,则编译报错
- 使用super调用父类的构造方法必须放在子类构造方法的第一行
super VS this
Object类是所有类的父类
- 一个类没有使用extends关键字明确标识继承关系,则默认继承Object类(包括数组)
- Java中每个类都可以使用Object类中的方法
- Object类常用方法
- 修饰类不允许被继承
- 修饰方法不允许被子类重写
- 修饰的方法可以被继承
- 不能修饰构造方法
- 修饰变量表示不允许修改
- 方法内部的局部变量>在使用之前被初始化赋值即可
- 类中的成员变量>只能在定义时或构造代码块、构造方法中进行初始化设置
- 基本数据类型的变量>初始化赋值后不能修改
- 引用类型的变量>初始化之后不能再指向另一个对象,但指向的对象的内容是可变的
- 可配合static使用
- 使用final修饰可以提高性能,但会降低可扩展性
注解
- JDK1.5版本引入的一个特性
- 可以声明在包、类、属性、方法、局部变量、方法参数等的前面,用来对这些元素进行说明、注释
- 注解的分类
- 按照运行机制分
- 源码注解
- 编译时注解
- 运行时注解
- 按照来源分
- 来自JDK的注解
- 来自第三方的注解
- 我们自己定义的注解
- 按照运行机制分
- 元注解:修饰注解的注解