java 内部类分为4种:
1)静态内部类:static修饰的类叫做静态类,把静态类放到一个类的内部,就叫做静态内部类
特点:可以访问外界:静态方法/静态属性,不能访问实例资源
案例:
import inner.Foo.Koo;//一定要把Koo静态内部类导入进来
public class Demo9 {
public static void main(String[] args) {
Koo koo = new Koo();
koo.add();
}
}
class Foo{
int a = 12;//实例变量
static int aa=16;
public static void show(){ System.out.println("静态的方法");}
//静态内部类
static class Koo{
public void add(){
// System.out.println(a); 静态内部类不能访问实例资源(变量)
System.out.println(aa);
show();//静态内部类可以访问外界的静态属性和方法
}
}
}
2)成员内部类:在一个类的内部,直接定义了一个不用static修饰的类,当创建成员内部类对象的时候,外部类要先创建出来。
特点:成员内部类,可以访问外界的属性和方法
案例:
import inner.Foo1.Koo1;
public class Demo10 {
public static void main(String[] args) {
//Koo1 koo1 = new Koo1();要创建成员内部类,则必须要先创建外部类对象
Foo1 foo1 = new Foo1();
//记住(笔试会考)
Koo1 koo1 = foo1.new Koo1();
koo1.show();
}
}
class Foo1{
int a =12;
static int aa = 16;
class Koo1{
void show(){
System.out.println(a+" , "+aa);
}
}
}
3)局部内部类:使用非常的少,特点在一个方法内定义一个类(企业开发中及其少用)
特点:局部内部类,在引用外界的变量,该变量必须要使用final修饰
案例:
public class Demo11 {
public static void main(String[] args) {
final int a = 12;
final int b = 13;
class Foo2{
int c = 16;
public int add(){
//在局部内部类中,引用外界的变量,则变量必须用final修饰
return a+b+c;
}
}
Foo2 foo2 = new Foo2();
System.out.println(foo2.add());
}
}
4)匿名内部类:对原来的类的一个继承
特点:跟接口/抽象类结合使用
eg new 类名/接口名 {
重写方法
};
案例:
public class Demo1 {
public static void main(String[] args) {
Koo koo = new Koo(){
//可以重写方法
public String toString() {
return "生成了一个Koo的对象";
}
//在匿名内部类里面不可以创建新的方法
//public void show(){
//System.out.println("liu");
//}
};
System.out.println(koo);
//koo.show();
}
}
class Koo{
}
相关推荐
内部类分为几种类型,包括成员内部类、局部内部类、匿名内部类以及方法参数内部类。 1. **成员内部类**:成员内部类就像是外部类的一个普通成员,可以是静态或非静态的。非静态内部类拥有对外部类的引用,可以直接...
本篇文章将深入探讨Java中的四种内部类:实例内部类、局部内部类、匿名类和静态内部类,并通过实例代码进行详细解析。 1. **实例内部类**:这是最常见的内部类形式,它在外部类的实例方法或成员位置定义。实例内部...
Java 中的匿名内部类总结 Java 中的匿名内部类是一种特殊的内部类,它没有名字,因此也称为匿名类。匿名内部类是一种简洁的编程方式,能够简化代码编写,但它也有一些限制和特点。 匿名内部类的定义 匿名内部类是...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义单独类的情况下创建对象。这种类没有名字,通常用作一次性实现某个接口或继承某个类的需求。在Java编程中,匿名内部类主要用于事件处理、回调...
在Java编程语言中,内部类和匿名内部类是两种特殊类型的类,它们为代码的组织和功能实现提供了独特的灵活性。本教程"Java4Android 35_内部类和匿名内部类"深入探讨了这两个概念,旨在帮助开发者更好地理解和运用它们...
内部类主要分为四种类型:静态内部类、成员内部类、局部内部类和匿名内部类。 1. 静态内部类(Static Inner Class) 静态内部类与普通的类类似,只是它们定义在外部类中,并且前面带有 `static` 关键字。它们不会...
Java内部类主要包括以下几种类型:成员内部类(非静态内部类)、静态内部类(也称为静态嵌套类)、局部内部类和匿名内部类。 - **成员内部类**:这种类型的内部类是定义在外部类的一个成员位置上,它可以访问外部类...
4. **匿名内部类(Anonymous Inner Classes)**:匿名内部类没有名字,它们通常用于实现接口或继承类。在创建匿名内部类的实例时,不需要单独定义类,而是直接在实例化时提供实现细节。匿名内部类特别适用于需要快速...
Java 1.1 引入了内部类和匿名类,这两种特性极大地增强了代码的灵活性和可读性。内部类是指定义在另一个类内部的类,它可以是静态的或非静态的,根据其是否需要访问外部类的实例成员来区分。静态内部类与普通类的...
内部类可以分为四种:成员内部类、静态嵌套类、方法内部类和匿名内部类。 成员内部类 成员内部类是定义在外部类的成员变量中的一种内部类。它可以访问外部类的所有成员变量和方法,包括私有的变量和方法。成员内部...
- 定义事件处理器,如Swing中的匿名内部类。 - 实现特定的逻辑关联,使得代码结构更清晰。 - 创建闭包,实现函数式编程风格(Java 8及以上版本)。 8. **访问控制** - 与顶级类相比,成员内部类可以具有更广泛...
Java 中的内部类和匿名类 Java 中的内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在 C++ 里也有,那就是嵌套类(Nested Class)。内部类从表面上看,就是在类中又定义了一个类,而实际上并没有那么...
4. 匿名内部类:匿名内部类是指没有名字的内部类,通常用在创建实例时使用。 为什么需要内部类? 内部类提供了某种进入其外围类的窗口。使用内部类最吸引人的原因是,每个内部类都能独立地继承自一个(接口的)...
4. 匿名内部类:没有名字的内部类,通常用于快速实现接口或抽象类的简单版本,常用于事件监听器等场合。 二、内部类的使用 内部类的应用广泛,以下是一些常见场景: 1. 实现回调:通过内部类,我们可以创建匿名...
总结一下,内部类、匿名内部类和内部接口在Java编程中提供了一种强大的工具,它们可以帮助我们更好地组织代码,实现封装和模块化。在Android开发中,它们常用于事件监听、线程管理、回调函数等场景,增强了代码的...
成员内部类方便访问外部类的私有成员,方法内部类常用于匿名内部类的创建,而静态内部类则允许我们不依赖外部类实例来创建对象。理解并熟练运用这些内部类,可以极大地提高Java编程的能力和效率。在实际开发中,根据...
内部类分为四类:非静态成员内部类、静态成员内部类、局部内部类和匿名内部类。接下来将逐一介绍这四种类型的内部类。 #### 二、非静态成员内部类 非静态成员内部类是最常见的一种内部类形式,它具有以下特点: 1...