二结(3.28)

时间:2022-08-30 01:17:25

这周回归教材,重新学习面向对象的知识。

接口的定义:interface关键字

【修饰符】interface extends 父接口..(可多个)

接口只能继承接口,不能继承类

接口中方法为public abstract(抽象方法

常量为public static final(静态常量

内部类:

一个类放在另一个类的内部定义,定义在内部的类极为内部类,包含内部类的叫外部类

同时,内部类可以访问外部类的私有属性

如果外部类、内部类、内部类方法中的变量重名,用this  外部类名.this区分

非静态内部类不能有静态方法、成员变量、初始化块

静态内部类:用static修饰的内部类,属于外部类本身,又叫类内部类

只可以访问外部类的静态成员

外部类访问静态类部类:静态成员:类名.变量

                                    非静态成员:new 类名().变量
静态成员是不能访问非静态成员的,并外部类静态成员(静态方法、静态初始化块)不能使用非静态内部类的成员

创建语法为;外名.内名 变量名=new 外名().new 内名(初始);

                    Out.In in=new Out().new In();

也可:Out.In in;

      Out out =new Out();

   in=out.new Im();

局部内部类:在方法中定义的内部类

不能用访问控制符和static修饰

匿名内部类:适用于创建只需要用一次的类

使用前台条件:必须继承一个父类或实现一个接口,但最多只能继承一个类或实现一个接口

不能是抽象类,不能定义构造器

常用方式:创建某个接口类型的对象

被匿名内部类访问过的局部变量相当于被final修饰了,不能再改变值了

Java8新增的Lambda表达式

表达式入门::

支持将代码块作为方法参数,允许使用简洁的代码来创建只有一个抽象方法的接口(函数式接口)的实例                                                    

对比

匿名内部类:

pa.process(target,new command()){
    public void process(int [] target)
        {
        ....实现代码块
        });
}
Lambda表达式:
pa.process(target,(int [] target)->{
        ...daimakuai
        });
}

Lamada作用代替匿名内部类的繁琐语法

三部分组成:形参列表     箭头(->)  代码块

只有一条语句可胜去花括号

--------------------------------------------------------------------

目前学习算步入正轨了,主要还是进度进度慢了点