前言
Java 基础知识 - 类, 多态, Object, 数组和字符串, 回顾, 继承, 类的多态性, 多态, 向上转型和向下转型, Object, 数组, 多维数组, 字符串, 字符串比较.
回顾
类 .png
类的定义格式:
[类的修饰符] class 类的名称 [extends 父类名称][implements 接口名称列表] {
变量的定义以及变量的初始化;
方法的定义以及方法体;
}
类的修饰符: public,abstract ,final 等.
- private
- protected
- public
- default(缺省)
继承
继承是 java 中的特性, 继承可以实现代码的复用性, 继承的类为子类, 被继承的类为父类, java 中不支持多重继承, 但可以通过接口实现.
- class DemoClass extends SuperClass{
- ...
- }
类的多态性
多态的体现: 覆盖与重载
多态
多态是为了提高功能的扩展性, 提高复用, 为父类的引用指向了子类的对象, 多态, 多种形态的体现.
父类引用指向子类对象, 并调用子类的覆盖方法, 就是多态, 注意父类的引用不能随便强加转为子类类型, 因为强转可能会出错, 在转换前先使用 instanceof 判断父类是否可以转换为子类
- abstract class Animal{
- public abstract void eat();
- }
多态原理:
- Dog d = new Dog();
- Animal a = new Dog();
- Cat c = new Catt();
- Animal aa = new Cat();
向上转型和向下转型
- Cat c = new Catt();
- Animal aa = new Cat();
- Animal a = new Animal();
- Cat c = (Cat) a;
向上转型为了提高程序的扩展性, 向下转型之前要进行类型的判断, 否则容易发生 classCastException 异常, 判断类型的关键字为 instanceof
- if(a instanceof Cat){
- Cat c = (Cat)a;
- c.catchMouse();
- }else if(a instanceof Dog){
- Dog d = (Dog)a;
- d.lookHome();
- }
- Object
Object 是类层次结构的根类, 存在 java.lang.Object 中.
方法 | 说明 |
---|---|
clone() | 创建并返回此对象的一个副本 |
equals() | 指某个对象是否与此对象 “相等” |
finalize() | 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法 |
getClass() | 返回对象运行时类 |
hashCode | 返回该对象的哈希码值 |
notify() | 唤醒在此对象等待的单个线程 |
notifyAll() | 唤醒所有线程 |
toString() | 返回该对象的字符串表示 |
wait() | 线程等待,直到其他线程调用此对象的 notify() 或 notifyAll() |
构造方法: public Object()
finalize() 方法: java 的垃圾回收时机
Object 的 toString() 方法: 返回的是对象的字符串形式
Object 的 equals() 方法: 比较两个对象是否相等
数组
Java 数组. png
数组是同种类型的数据集合, 数组中放的每个数据为数组中的一个元素, 元素的数量为数组的长度, 为数组名. length
数组的定义:
数组的数据类型 [] 变量名;
数组的数据类型 变量名 [];
java 数组实际上是对象, 通过 new 创建对象, 数组的下标不低于 0, 也比数组的元素个数小, 在使用数组下标时, 可能会产生
ArrayIndexOutOfBoundsException
错误, 要小心了.
多维数组
int[][] a = new int[2][3];
图片
数组与字符串. png
数组的使用步骤:
声明数组
创建数组
使用数组元素
字符串
字符串常量
声明字符串变量
创建字符串
获取字符串长度
字符串比较
==: 比较两个字符串是否为同一个对象
equals(): 比较两个字符串的内容是否相同
检索: indexOf()
截取: substring()
替换: replace()
忽略大小写比较: equalsIgnoreCase()
字符串前缀, 后缀是否为指定字符串: startWith(),endWith()
字符串转换: parseInt(),parseByte(),parseShort(),parseLong(),parseDouble()
数值转换为字符串: valueOf()
对象的字符串: toString()
结语
本文主要讲解 Java 基础知识 - 类, 多态, Object, 数组和字符串
来源: http://www.jianshu.com/p/48b157eba17d