`
小桔子
  • 浏览: 23343 次
  • 性别: Icon_minigender_2
  • 来自: 贵阳
社区版块
存档分类
最新评论

java内部类引用外部类中方法解析

    博客分类:
  • java
阅读更多

 内部类引用外部类方法,逻辑有些绕。

1.内部类生成对外部类对象的引用

外部类名称+.this;

2.外部类提供实例化内部类的方法,因为拥有外部类对象之前是不能创建内部类对象的,内部类对象会暗暗地连接到创建她的外部类对象中。

相当抽象的图像说明大笑



 代码:

 

public class NotThis {
    public void fun()
    {
         System.out.println("function in out class");
    }
    
    private class Inner
    {
         //內部类中生成对外部对象的引用
         public NotThis outer()
         {
             return NotThis.this;
         }
    }
    //外部类中提供实例化内部类的方法
    public Inner inner()
    {
         return new Inner();
    }
    public static void main(String args[])
    {
         NotThis dotThis=new NotThis();
         NotThis.Inner inner=dotThis.inner();//內部類不能存取。
//       NotThis.Inner inner=dotThis.new inner();//可取方法
//              NotThis.Inner inner=new NotThis.Inner(); 不可取
         inner.outer().fun();
         
    }

}

 

 

  • 大小: 15.5 KB
分享到:
评论

相关推荐

    java内部类解析.......

    ### Java内部类解析 #### 什么是Java内部类? 在Java中,内部类是一个在其另一个类的内部声明的类。这种内部关系意味着内部类是外部类的一部分,并且可以访问外部类的所有成员,包括私有成员。这为Java提供了一种...

    java内部类解析.pdf

    Java内部类是Java编程语言中的一个特色特性,它允许在一个类的定义内部定义另一个类。自Java 1.1引入内部类以来,这种特性一直备受争议。内部类提供了访问外部类私有成员的能力,但如果不恰当使用,可能导致代码难以...

    有关JAVA的内部类的好东西

    Java内部类是Java语言中一个独特且强大的特性,它允许在一个类的定义内部定义另一个类。内部类可以访问外部类的所有成员,包括私有成员,这使得内部类在实现某些特定设计模式时非常有用。本篇文章将深入探讨Java内部...

    java内部类解析[归类].pdf

    Java内部类是Java编程语言中的一个特色特性,它允许在一个类的定义内部定义另一个类。自Java 1.1引入内部类以来,这种特性一直备受争议。一方面,它提供了更高级别的封装和抽象,另一方面,如果使用不当,可能导致...

    java静态内部类(嵌套类)

    5. **静态方法调用**:在静态内部类中可以直接访问外部类的静态方法和变量,但是无法直接访问非静态成员。 6. **非静态方法调用限制**:如果需要访问外部类的非静态方法或变量,则必须通过外部类的对象引用来进行...

    Java内部类总结.pdf

    Java内部类是Java语言中一个独特且强大的特性,它允许在一个类的定义内部定义另一个类。内部类在Java中主要用于创建更加紧密耦合的对象,尤其是在处理事件处理和封装时。虽然在J2EE编程中使用不多,但在GUI编程中...

    JAVA内部类

    ### JAVA内部类详解 #### 引言 自Java1.1版本起,内部类的引入为面向对象编程提供了更为灵活的封装机制。然而,如同所有强大的特性,内部类的不当使用可能导致代码复杂度的增加,甚至产生维护上的困难。本文旨在...

    java内部类的使用

    - `nn()`方法中,外部类通过`new Inner()`创建了内部类的一个实例,并调用了`print()`和`aa()`方法。 - `bb()`方法是一个字符串处理方法。 4. **主函数**: - `Test`类中的`main`方法创建了一个`Outer`类的实例...

    JAVA_内部类_反射机制

    Java中的内部类是一种特殊类型的类,它被定义在另一个类的内部。内部类有四种主要类型:成员内部类、静态嵌套类、方法内部类和匿名内部类。 1. 成员内部类:这类内部类就像外部类的成员,可以访问外部类的所有成员...

    反射私有内部类的例子

    5. **调用私有内部类的方法**: - `Method[] m = clss.getDeclaredMethods();`:获取所有声明的方法。 - `m[0].setAccessible(true);`:设置为可访问。 - `m[0].invoke(oo, new ArrayList());`:调用私有内部类的...

    深入理解内部类具体实例

    Java内部类是Java语言的一个特色特性,它允许我们在一个类的内部定义另一个类。这种设计模式在处理事件监听、匿名类、线程等场景时非常有用。本篇将深入探讨四种类型的内部类:成员内部类、局部内部类、匿名内部类和...

    2024年Java基础面试题,附带详细解析答案

    在 Java 中,`static` 关键字用于声明类成员(变量、方法和代码块)为静态成员,具有以下特点: - **静态变量**:属于整个类而不是特定的对象实例,所有对象共享同一份副本。 - **静态方法**:同样属于整个类,可以...

    C++内部类详细分析

    - 内部类的对象可以拥有指向外部类对象的引用,使得内部类能够访问外部类的状态。 2. **在C++中模拟内部类**: - 在C++中,可以通过将内部类定义为外部类的一个成员类型来实现类似的功能。 - 使用嵌套类...

    Java关键字解析.pdf

    静态内部类是一种特殊的嵌套类,它不持有对外部类的引用,可以在没有外部类实例的情况下创建。 `final`关键字用于声明不可变的变量、方法和类。对于变量,一旦赋值后不能更改;对于方法,`final`方法不能被子类重写...

    内部类和枚举类.rar

    内部类和枚举类在Java编程中是两个重要的高级特性,它们为代码设计提供了更丰富的结构和灵活性。本文将深入探讨这两个概念,并结合提供的压缩包文件`demo8`、`task03`和`demo7`中的实例进行解析。 ### 一、内部类 ...

    深入解析Java编程中final关键字的作用

    在Java编程中,final关键字扮演着至关重要的角色,它用于声明不可变的变量、方法以及类,以确保代码的稳定性和安全性。以下是关于final关键字的深入解析: 1. **final类**: 当一个类被声明为final时,这意味着这...

    Java语言基础入门教程 Java实训教程 14.嵌套类等 共34页.pptx

    静态嵌套类主要用于当内部类不需要引用外部类实例的情况,而内部类则提供了更紧密的封装机制,使得内部类可以直接访问外部类的成员。在实际开发过程中,根据具体需求选择合适的嵌套类类型是非常重要的。

    Java开发技术大全(500个源代码).

    invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...

    Java创建一个类-类名称student

    在 Java 编程中,创建一个类是定义对象的基础,它是面向对象编程的核心。在这个例子中,我们创建了一个名为 `Student` 的类,用于表示学生实体。类是封装数据和行为的一种方式,允许我们将相关属性和操作组合在一起...

Global site tag (gtag.js) - Google Analytics