以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

java项目开发流程 java项目开发流程图

注意,互相学习,以后不断更新文章和新的学习资料。

前言

接口是Java中的一种重要类型,在实际项目开发中被广泛使用,也称为面向接口编程。本章将详细介绍接口和内部类的概念和使用。

接口

接口是什么

生活中的接口,比如电脑上的USB接口,规范了接口的形状和大小,只要符合规格的设备都可以连接。

程序中的接口是一组规范,它规定了方法的定义。只要实现接口的类必须根据接口的规范来定义。

使用接口

定义接口语法:

公共接口接口名称{静态常数的定义;方法的定义;}注意定义接口:

该方法是抽象的,无法定义的属性将自动转换为静态常量。方法只能是公共的,默认情况下是公共的以实现接口

公共类名实现接口名{具体方法的实现}实现接口时要注意:

所有接口中的方法都必须实现。方法必须与接口中定义的方法完全相同。方法必须是公共的。一个类可以实现多个接口。类可以继承类并实现接口。类名扩展父类实现接口{}接口可以继承接口。实现类必须实现所有方法。接口A { void TeStA();}//接口之间的继承接口B扩展了A { void testB();c类的意义在开发中实现了b { public void testa()} { public void testb(){ } }接口

为类实现制定一套规范,并将设计与实现分开。

default关键字

Java1.8的新特性,默认定义的方法可以有默认实现。

公共接口Person {//给接口方法默认实现default void eat () {system。out.println('吃饭!');} void walk();}实现类不需要实现具有默认值的方法。

接口与抽象类的异同

界面与抽象类的区别在于面试问题的共性相似性:

可能存在未实现的方法无法实例化的差异:

抽象类是单一继承,类可以实现多个接口

口不能定义构造方法
  • 接口中的方法只能是public,抽象类可以有各种访问类型的方法。
  • 接口中只能定义静态常量,抽象类可以定义普通的成员变量。
  • 接口中的抽象方法不用加abstract,抽象类必须加。
  • 内部类

    内部类就是在类里面定义的类。Java的内部类包含:


    • 成员内部类
    • 静态内部类
    • 局部内部类
    • 匿名内部类

    成员内部类

    和成员变量(属性)、成员方法同级的,都是属于某一个对象所有的。语法:


    class 外部类{class 内部类{...}}

    特点:


    • 一般只在外部类的里面使用
    • 成员内部类和类的属性和方法同一级别。
    • 属于类的对象,在创建每个对象时加载到内存

    静态内部类

    成员内部类加上static,就是静态内部类语法:


    public class 外部类{static class 内部类{}}

    和成员内部类的区别:


    1. 成员内部类属于对象,静态内部类属于外部类
    2. 成员内部类每创建一个对象加载一次,静态内部类和外部类一起加载
    3. 成员内部类能访问外部类的所有成员,静态内部类只能访问外部类静态的成员

    局部内部类

    在方法中定义的类,只能在当前方法中使用,方法调用时加载类到内存中。语法:


    class 外部类{public void test(){class 内部类{}内部类 对象 = new 内部类();}}

    匿名内部类

    一个没有名字的内部类,创建类的同时创建了对象。应用场合:接口或抽象类的实现类只需要使用一次,代码是一次性的。语法:


    new 接口/抽象类(){实现方法};

    实现USB案例


    //Usb接口interface Usb{void connect(); //连接void charge(); //充电}//匿名内部类实现接口Usb usb = new Usb(){public void connect(){System.out.println("Test2测试连接");}public void charge(){System.out.println("Test2测试充电");}};usb .connect();usb .charge();

    和一般类的区别:


    1. 没有名字
    2. 只能使用一次
    3. 没有构造方法
    4. 不能定义静态成员

    面试题:在?处填写什么可以在控制台输出30,20,10。


    class Outer { public int num = 10; class Inner { public int num = 20; public void show() { int num = 30; System.out.println(?); num System.out.println(?); this.num System.out.println(?); Outer.this.num } } } class InnerClassTest { public static void main(String[] args) { Outer.Inner oi = new Outer().new Inner(); oi.show(); } }

    结束

    留两个作业:


    1. 定义播放器接口,播放音乐方法;定义游戏机接口,玩游戏方法;定义电话类,有品牌和价格属性,和打电话方法定义手机类继承电话并实现播放器和游戏机接口
    2. 定义算术接口,分别定义加减乘除四个方法,每个方法都有两个double参数,返回值为double。使用常规类和匿名内部类两种方式实现接口。