内部类 匿名内部类

  

内部类
在类内 定义一个类 这个就是内部类
使用格式
外部类.内部类 变量名 = new 外部类()new 内部类();

内部类只可以接直接访问外部类中的成员,包括私有的
之所以可以直接访问外部类中的成员,是因为内部类中只有了一个外部类的引用,格式
外部类名.this.外部类属性名
党内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中。 可以直接建磊内部类对象。格式 :
外部类名.内部类名 变量名 = 外部类对象.内部类对象 ;
外部类.内部类 变量名 = new 外部类()new 内部类();

内部类在成员位置上,就可以被成员修饰符所修饰。
private ,static
当内部类被static修饰后 只能直访问外部类中的static成员, 出现了访问局限性
如何访问内部类的非静态属性方法
new 外部类。内部类()。内部类属性名();
内部类 直接访问外部类内的属性方法时 定义内部类

内部类定义在局部时
不可以被成员修饰符许修饰
可以直接访问外部类中的成员,因为他持有外部类的引用,但是不可以访问他所在的局部的变量。值能访问被fianl修饰的局部变量

匿名内部类
匿名内部类其实就是内部类的简写格式
定义匿名匿名内部类的前提 ----内部类必须是继承一个类或者接口。

格式
new父类或者接口(){定义子类的内容}
匿名内部类 就是一个匿名子类对象 【带内容的对象】

时间: 2024-08-02 07:59:54

内部类 匿名内部类的相关文章

黑马程序员——————> 局部内部类&匿名内部类

------- android培训.java培训.期待与您交流! ---------- 如果把一个内部类放在方法里定义,则这个内部类就是一个局部内部类,局部内部类仅在该方法里有效.由于局部内部类不能在外部类的方法以外的地方使用,因此局部内部类也不能使用访问控制符和static修饰符修饰. 对于局部成员而言,不管是局部变量还是局部内部类,它们的上一级程序单元都是方法,而不是类,使用static修饰它们没有任何意义.因此,所有的局部成员都不能使用static修饰.不仅如此,因为局部成员的作用域是所在

内部类&匿名内部类

内部类:如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象.这时,为了方便设计和访问,直接将A类定义在B类中.就可以了.A类就称为内部类.内部类可以直接访问外部类中的成员.而外部类想要访问内部类,必须要建立内部类的对象. ----------------------------------------------------- class Outer{ int num = 4; class  Inner { void show(){ System.out.println("inner

Java学习笔记:内部类/匿名内部类的全面介绍

编写java程序时,一般一个类(或者接口)都是放在一个独立的java文件中,并且类名同文件名(如果类是public的,类名必须与文件名一致:非public得,无强制要求).如果想把多个java类放在一个java文件中,则只能有一个public类.如下面的两个类放在同一个文件中就会报错,无法编译通过. 可以看出,因为TestOne.java文件中已经有一个public类TestOne,这时再加了一个public类TestTwo就报错了.如果将类TestTwo前面的public修饰符去掉就没有问题了

JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?

本文主要记录:在JAVA中,(局部)内部类访问某个局部变量,为什么这个局部变量一定需要用final 关键字修饰? 首先,什么是局部变量?这里的局部是:在方法里面定义的变量. 因此,内部类能够访问某局部变量,说明这个内部类不是在类中定义的内部类,而是在方法中定义的内部类,称之为:局部内部类. 局部变量的作用域:局部变量是在某个方法中定义,当该方法执行完成后,局部变量也就消失了.[局部变量分配在JVM的虚拟机栈中,这部分内存空间随着程序的执行自动回收],也即:局部变量的作用域是在 “方法的范围内”.

修饰符-包-内部类-代码块执行顺序

1.访问权限修饰符     从大到小的顺序为:public--protected--default--private     private--只能在同一类中使用;     default--不用写出来,默认不加.可以被同一包中的类使用     protected--可以被不同包的子类使用     public--可以被不同包的其它类使用 2.各种修饰符的修饰对象(可修饰哪些:类/接口/方法/属性)(多个修饰符连用是可以没有顺序的!)     1)访问权限修饰符:public/default--

java-修饰符-包-内部类

1.访问权限修饰符 从大到小的顺序为:public--protected--default--private private--只能在同一类中使用; default--不用写出来,默认不加.可以被同一包中的类使用 protected--可以被不同包的子类使用 public--可以被不同包的其它类使用 2.各种修饰符的修饰对象(可修饰哪些:类/接口/方法/属性) 1)访问权限修饰符:public/default---可修饰类/接口 private protected 不可修饰类.default可修

我的学习之路_第三章_匿名内部类

final: final是最终修饰符,可以修饰类.成员方法.变量. final修饰的类无法被继承. final修饰的方法无法被重写. final修饰的变量无法被再次赋值,变为了常量. final修饰的引用数据类型变量,可以修改对象里面的属性内容,不可改变地址值 final修饰的成员变量,不能使用默认值,没有意义,必须在创建对象之前完成赋值. static: 静态修饰符,被static修饰的内容属于类不专属于某个对象,多个对象共享使用这一个成员 使用static修饰的成员可以用类名直接访问,建议这

static,final,包,访问修饰符,内部类

static 关键字可以修饰成员变量,被static修饰的成员变量归属于类static关键字可以修饰成员方法:被static修饰的成员方法可以直接使用类名调用,也可以通过对象调用,建议使用类名.非静态的方法只能通过对象才能调用静态的方法可以通过类名直接调用,也可以通过创建对象,使用对象名进行调用.静态方法中不能使用非静态的成员变量在非静态的方法中可以使用静态的成员变量静态的内容要优先与对象存在,当类加载的时候,会随着类的加载而存在于静态区中. 局部代码块分为局部代码块和构造代码块局部代码块:在方

【Java学习笔记之二十六】深入理解Java匿名内部类

在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始化匿名内部类.匿名内部类使用的形参为何要为final. 一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者