`

core-java学习【三】Java内部类

    博客分类:
  • Java
阅读更多

    成员内部类可以随意访问外部类中的变量,而外部类不能够直接访问内部类中的变量,只有通过使用内部类对象来引用内部类的成员变量。

     如果使用  this.i    的方式来调用变量,则表示这个变量是成员内部类中定义的变量。而通过使用   student.this.i   的形式调用变量时表示此时引用的是外部类的成员变量。(student

实例:

package innerclass;

public class OuterClass 
{
    public void setNo(int no)
    {
        this.no = no ;
    }
    
    public void print()
    {
        System.out.println("The Value of No is : " + this.no) ;
    }
    
    /*
     * InnerClass类没有被声明为OuterClass类的一个静态成员,
     * 因此除非生成了一个OuterClass对象,
     * 否则无法生成任何InnerClass对象。
     */
    public class InnerClass 
    { 
        public void insetNo(int no)
        {
            // 内部类调用外部类的方法
            OuterClass.this.setNo(no) ;
        }
        
        public void inprint()
        {
            // 内部类调用外部类的方法
            OuterClass.this.print() ;
        }
    }
    
    private int no = 0 ;
    
}

 

 

package innerclass;

public class Test
{
    public static void main(String[] args)
    {
        //先实例化一个外部类,然后再利用外部类实例化一个内部类生成了一个OuterClass类对象out
        OuterClass out = new OuterClass() ;
        //借助外部类的实例out生成了一个内部类对象in
        OuterClass.InnerClass in = out.new InnerClass() ;
  
        in.insetNo(5);
        out.print() ;  
        }
    /*
     * 总之:在一个类(Test)中,创建另一个类(OuterClass)中的    非静态内部类(InnerClass)
     * 必须要借助这个外部类(OuterClass)的一个实例。
     * 而且这个内部类对象的声明也必须用OuterClass.InnerClass的形式。
     */
}

 

 

分享到:
评论

相关推荐

    core-java电子书

    12. **Lambda表达式和函数式编程**:Java 8引入的新特性,简化了匿名内部类的使用,使得函数式编程风格在Java中变得更加自然。 通过学习这本《Core Java》电子书,无论是初学者还是有经验的开发者,都能深化对Java...

    huiruo#Reading-Core-Java-Volume-I-#06_03_内部类1

    内部类( inner class ) 是定义在另一个类中的类。public TalkingClock(int interval, boolean beep) {

    javaParser 包 javaparser-core-3.6.16.jar

    `javaparser-core-3.6.16.jar` 文件是 JavaParser 库的核心组件,包含了对 Java 语言解析所需的所有核心类和方法。 JavaParser 提供了对 Java 语法的深度理解,能够将源代码转换为抽象语法树(Abstract Syntax Tree...

    Core-Java-8th-Edition.rar_core java II

    综上所述,《Core Java II》第八版是深入学习Java 8不可或缺的参考资料,其中包含了Lambda表达式、函数式接口、Stream API、日期时间API以及并发编程等多个关键知识点,对于想要提升Java开发能力的程序员来说,这部...

    javamelody-javamelody-core-src-1.68.1.zip

    从标题“javamelody-javamelody-core-src-1.68.1.zip”可以看出,这包含的是JavaMelody核心组件1.68.1版本的源代码。这对于开发者来说是一个宝贵的资源,可以深入理解其内部工作原理,进行定制化开发或者调试。 源...

    opencv-460.jar及opencv-java460.dll

    "opencv-460.jar"是OpenCV针对Java的API接口库文件,它包含了Java绑定的类和方法,允许Java程序调用OpenCV的底层C++实现。这个版本号460意味着这是OpenCV的4.6.0版本,通常会包含新功能、性能优化以及错误修复。...

    gst1-java-core:GStreamer 1.x的Java绑定

    它允许程序员在应用程序内部创建各种媒体处理管道,从简单的媒体播放到编码,实时流式传输,分析,机器学习, WebRTC等。 GStreamer被设计为跨平台的,并且为各种操作系统提供了二进制文件。 gst1-java-core已在...

    grpc-java-1.9.0.zip_grpc-java 1.9.0源码

    总之,`grpc-java-1.9.0.zip` 包含了 GRPC 在 Java 平台上的所有源代码,是学习和研究 GRPC 内部实现的宝贵资源。通过深入研究源码,开发者可以更好地掌握 GRPC 的工作原理,从而在微服务架构中更有效地使用这一强大...

    达内Java培训-CoreJava全程笔记(WORD唐亮版)

    CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 反射、注释 57 CoreJava DAY17 GUI 64 CoreJava DAY...

    zxing core-3.3.3.jar core-3.3.3-javadoc.jar core-3.3.3-sources.jar

    "core-3.3.3-sources.jar"提供了ZXing核心库的源代码,对于开发者来说,这是一个宝贵的资源,可以深入学习ZXing的内部实现,理解其工作原理,甚至可以根据需求进行自定义修改或扩展。 标签中的"core-3.3.3.j"、...

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    corejava,java核心编程

    【标题】:“Core Java,Java核心编程” 【描述】:“Java语法基础,Java面向对象编程,图形用户界面(GUI)编程,Java网络编程:Socket编程” ...通过深入学习和掌握Core Java,开发者能够构建复杂且高效的软件系统。

    open-sdk-java-2.0.1_open_商城_有赞sdk_有赞商城_有赞_源码

    有赞SDK for Java 2.0.1 是一个专门针对有赞商城的开发工具包,旨在帮助开发者便捷地与有赞商城的API进行交互,从而快速构建和集成线上商城功能。这个开源版本提供了完整的源码,让开发者可以深入理解其工作原理,并...

    jodconverter-core-3.0-beta-4.jar 组合.zip

    在Java代码中引入`jodconverter-core-3.0-beta-4.jar`后,你可以通过以下步骤实现转换: 1. **创建OfficeManager**:这是连接到OpenOffice或LibreOffice服务的关键。通常,你可以使用`...

    Core Java Java的基本知识

    Core Java 是学习 Java 编程的基础,它包含了 Java 编程的核心概念和技术。本文将深入探讨 Core Java 的基本知识,适合初学者作为入门指南。 #### 二、Java 核心概念与基础知识 ##### 1. 标识符与关键字 - **...

    java二维码生成依赖jar包core-3.3.3.jar

    - `core-3.3.3-sources.jar`:包含了源代码,这对于开发者来说非常有价值,可以查看和学习内部实现,方便自定义或者调试。 - `core-3.3.3-javadoc.jar`:包含API文档,帮助开发者理解和使用ZXing库提供的接口和类...

    hamcrest-core-1.3.jar

    总的来说,hamcrest-core-1.3.jar和其源码文件hamcrest-core-1.3-sources.jar为Java开发者提供了强大的断言工具,帮助提升测试的质量和效率。熟悉并熟练运用Hamcrest,将有助于编写出更加优雅、易于维护的测试代码。

    mybatis-generator-core-1.3.2注释修改

    2. **理解源码结构**:MBG的核心在于`org.mybatis.generator.api`包,其中`JavaModelGenerator`、`SqlMapGenerator`和`JavaClientGenerator`三个类分别负责生成Java模型、SQL映射文件和Java客户端接口。我们需要关注...

    corejava-达内内部资料

    《CoreJava-达内内部资料》是一份专为Java爱好者准备的深度学习资源,它涵盖了Java编程的基础到高级知识,旨在提升读者的编程能力和技术水平。这份资料由知名的IT培训机构达内内部提供,确保了内容的专业性和实用性...

Global site tag (gtag.js) - Google Analytics