【Java总结】-【入门篇(第四周)】 后续每周总结一次
JAVA接口、内部类、常用类 一、JAVA接口 1.1 什么是接口?:接口相当于特殊的抽象类,定义方式、组成部分于抽象类类似。
微观概念:接口是一种能力和约定
接口的定义:代表了某种能力 方法的定义:能力的具体要求经验:Java为单继承,当父类方法种类无法满足子类需求时,可实现接口扩充子类能力
接口支持多实现,可为类扩充多种接口
接口的格式
interface 接口名{
静态常量
抽象方法
}
举个栗子:
interface TestInterface{
public final static int NUASA = 10;
public static int NUASB = 20;
public abstract void abstractMethods();
}
1.2 接口与类的异同:
相同:
可编译成字节码文件。
不能创建对象
可以作为医用类型
具备Object类中所定义的方法
不相同 :
所有属性都是公开静态常量,隐式使用public static final修饰
所有方法都是公开抽象方法,隐式使用public abstract修饰
没有构造方法、动态代码块、静态代码块。
1.3 接口的规范:
任何类在实现接口时,必须实现接口中所有抽象方法,否则此类为抽象类
实现接口中抽象方法时,访问修饰符必须是Public
接口的引用
同父类一样,接口也可声明为引用,并指向实现类对象。
注意:
仅可调用接口中所声明的方法,不可调用实现类中独有的方法
可强转回实现类本身类型,进行都有方法调用。
接口的多态:
多种不同类型的引用指向同一个对象时,表示看待对象视角的不同
不同引用所能看到的对象范围不同,只能调用自身类型中所声明的部分
不同类型的引用只能调用自身类型中声明的方法
1.4 接口回调 先有接口使用者,后又接口的实现者。接口定义
public interface EatNoodles{
public void eat(String foods);
}
接口的使用
public class YanYan{
public void getUp(String goods, EatNoodles en){
System.out.println("岩岩起床洗漱");
// 岩岩调用了敢敢的方法
en.eat(goods);
}
}
接口的实现
public class GanGan implments EatNoodles{
@Override
public void eat(String foods){
System.out.print("敢敢和岩岩一起吃:" + foods);
}
public void eatFood(){
YanYan yy = new YanYan();
yy.getUp("大米饭",yy);
}
}
1.5 接口的好处
程序耦合度降低
更自然地使用多态
设计与实现完全分离
更容易搭建程序框架
更容易更换具体实现
二、JAVA内部类
内部类具体学习请点击这里
2.1 内部类的介绍在一个类内部在定义一个完整的类
特点:
编译之后可生成独立的字节码文件
内部类可直接访问外部类的私有成员,而不破坏封装。
可为外部类提供必要的内部功能组件
分类:
成员内部类 静态内部类 局部内部类 匿名内部类 2.2 成员内部类 在类内部定义,与实例变量、方法实例方法同级没有类名的局部内部类
必须继承一个父类或者实现一个接口
定义类、实现类、创建对象的语法合并,只能创建一个该类的对象。
优点:减少代码量。
缺点: 可读性较差
三、Object类及其常用方法Object具体学习请点击这里
超类、基类,所有类直接或间接父类,位于继承树最顶端 任何类,如果没有书写extends显示继承某个类,都默认直接继承Object类,否自都是间接继承 Object类中所定义的方法,是所有对象都具备的方法。 Object类型可以存储任何对象。 作为参数,可接受任何对象 作为返回值,可返回任何对象。主要介绍以下5个方法:
getClass()方法 hashCode()方法 toString()方法 equals()方法 finalize()方法 3.1 getClass()方法 返回应用存储的时机对象类型 应用:通常用于判断两个引用中实际存储对象类型是否一致 3.2 hashCode()方法 返回该对象的十六进制的哈希码值 哈希算法根据对象的地址或字符串或数字计算出来的int类型的数值 哈希码并不唯一,可保证相同对象返回相同哈希码,尽量保证不同对象返回不同哈希码。 3.3 toString()方法 返回对象字符串表示 可以根据程序需求覆盖该方法 3.4 equals()方法 比较两个对象地址是否相同 可进行覆盖,比较两个对象内容是否相同 覆盖步骤:本周回忆整理了 Java的接口、内部类、常用类,期望对大家有用