final是属于润饰类
在类外面增加final不能被继承
润饰类

flnal class 类名 {}

举例:

final class a {}

在办法里增加final不能被重写
润饰办法

修饰符 final 返回值类型 办法名(参数列表){//办法体}

举例:

public final String b(int a){a = 1;}

在变量里增加final不能被从新赋值
润饰变量
举例:

final int a;a = 10;a = 15;//报错,不可从新赋值final int b = 10;b = 15;//报错,不可从新赋值

不同权限的拜访能力
public protected default(空的) private 在同类中的拜访能力是能够的

public protected default(空的)在同一包中是能够

public protected 在不同包子类是能够

public 在不同包中的无关类是能够

成员外部类
定义格局:

class A{  class B{  }}

创立外部类对象格局:

外部类名.外部类名 对象名 = new 内部类型().new 外部类型();

演示:
(定义类)

public class Person {  private boolean live = true;  class Heart {    public void jump() {      // 间接拜访外部类成员      if (live) {        System.out.println("心脏在跳动");      } else {        System.out.println("心脏不跳了");      }    }  }  public boolean isLive() {      return live;  }  public void setLive(boolean live) {      this.live = live;  }}

(测试类)

public class InnerDemo {  public static void main(String[] args) {    // 创立外部类对象    Person p = new Person();    // 创立外部类对象    Heart heart = p.new Heart();    // 调用外部类办法    heart.jump();    // 调用外部类办法    p.setLive(false);    // 调用外部类办法    heart.jump();  }}

输入后果:
心脏在跳动
心脏不跳了
匿名外部类
格局:

new 父类名或者接口名(){  //办法重名  @Override  public void method(){    //执行语句  }};

举例:
(定义接口)

public abstract class a{    public abstract void fly();}

创立匿名外部类,并调用:

public class InnerDemo {  public static void main(String[] args) {    /*    1.等号左边:是匿名外部类,定义并创立该接口的子类对象    2.等号右边:是多态赋值,接口类型援用指向子类对象    */    FlyAble f = new FlyAble(){      public void fly() {        System.out.println("陈丽好吃屁");      }    };    //调用 fly办法,执行重写后的办法    f.fly();  }}