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(); }}