第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言
Java
基础知识-类,多态,Object
,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object
,数组,多维数组,字符串,字符串比较。
回顾
类的定义格式:
[类的修饰符] 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()
方法:比较两个对象是否相等
数组
数组是同种类型的数据集合,数组中放的每个数据为数组中的一个元素,元素的数量为数组的长度,为数组名.length
数组的定义:
数组的数据类型[] 变量名;
数组的数据类型 变量名[];
java
数组实际上是对象,通过new
创建对象,数组的下标不低于0,也比数组的元素个数小,在使用数组下标时,可能会产生ArrayIndexOutOfBoundsException
错误,要小心了。
多维数组
int[][] a = new int[2][3];
数组的使用步骤:
- 声明数组
- 创建数组
- 使用数组元素
字符串
字符串常量
声明字符串变量
创建字符串
获取字符串长度
字符串比较
==:比较两个字符串是否为同一个对象
equals():比较两个字符串的内容是否相同
检索:indexOf()
截取:substring()
替换:replace()
忽略大小写比较:equalsIgnoreCase()
字符串前缀、后缀是否为指定字符串:startWith()、endWith()
字符串转换:parseInt()、parseByte()、parseShort()、parseLong()、parseDouble()
数值转换为字符串:valueOf()
对象的字符串:toString()
结语
- 本文主要讲解 Java基础知识-类,多态,Object,数组和字符串
- 下面我将继续对
Java
、Android
中的其他知识 深入讲解 ,有兴趣可以继续关注 - 小礼物走一走 or 点赞