加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java内部类

发布时间:2020-12-15 01:57:43 所属栏目:Java 来源:网络整理
导读:1. 内部类访问规则: ( 1 )成员内部类中不可以有静态属性;静态内部类可以有; ( 2 )内部类可以直接访问外部类中的成员,包括私有; ( 3 )外部类访问内部类,必须实例化内部类; //Outer outer=new Outer() ; Outer.Inner inner=outer.new Inner() ;

1.内部类访问规则:

  (1)成员内部类中不可以有静态属性;静态内部类可以有;

  (2)内部类可以直接访问外部类中的成员,包括私有;

  (3)外部类访问内部类,必须实例化内部类;

    //Outer outer=new Outer()

    Outer.Inner inner=outer.new Inner()

2.静态内部类:

  (1)静态内部类只能访问外部静态成员;

  (2)可以直接用"外部类名.内部类名.静态成员"调用静态成员;

  (3)可以不依赖外部类实例创建对象;

    ?//Outer.Inner inner=new Outer().Inner();

3.局部内部类:

?  1.不可以被成员修饰符修饰;

  ?2.可以直接访问外部类中的成员;

  ?3.不可访问它所在的局部中的变量,只能访问被final修饰的局部变量;

?4.匿名内部类:

  1.匿名内部类前提:必须继承一个类或者实现接口;两者取其一;

  2.匿名内部类格式:?new 父类或者接口() {子类内容}

  3.匿名注意点:

    (1)不能有构造方法;

    (2)不能有静态成员;

    (3)所有抽象方法都要实现;

例://接口

interface ?Demo{

????public abstract void show();

}

//内部类演示

class Outer{

????private int x=1;

????void run(){

????????new Demo(){ ??//原理:?new inner().show();

????????????public void show(){

????????????????System.out.println("123");

????????????}

????????}.show();

????}

}

public class test{

????public static void main(String[] args){

????????new Outer().run();

????}

}

?

?例://接口

interface ?Demo{

????public abstract void show();

}

//内部类演示

class Outer{

????private int x=1;

????class Inner implements Demo{

????????public void show(){

????????????System.out.println(x);//Outer.this.x;

????????}

????}

????void run(){

????????new Inner().show();

????}

}

public class test{

????public static void main(String[] args){

????????new Outer().run();

????}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读