返回顶部
首页 > 资讯 > 后端开发 > Python >学生视角带你了解Java内部类
  • 275
分享到

学生视角带你了解Java内部类

2024-04-02 19:04:59 275人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、内部类介绍二、成员内部类:1、非静态内部类2、静态内部类二、局部内部类:2、有名的局部内部类1、匿名局部内部类(重要)一、内部类介绍 1.定义:一个类内部又嵌套了一个类,被嵌

一、内部类介绍

1.定义:一个类内部又嵌套了一个类,被嵌套的类就是内部类(inner class),嵌套其他类的称为外部类(outer class)。内部类是类的五大成员之一(属性、 方法、构造器、代码块、内部类)。

分类:

二、成员内部类:

1、非静态内部类

说明:定义在成员位置中(方法或代码块外面),无static修饰。

1.可以直接访问外部类的所有的成员

2.可以 添加任意权限修饰符

3.作用域,和其他成员一样作用在整个外部类


package local_class;

public class localclass {//外部类
    //属性位置
    private int n1=10;
    class localN1{//局部类
        public void output(){
            //==1==.可以直接访问外部类的所有的成员,包括私有
            System.out.println("获取私有成员"+n1);
        }
    }
    //写一个方法来创建局部类的一个实列
    public void output(){
        localN1 LocalN1 = new localN1();
        LocalN1.output();
    }

}

实现:

2、静态内部类

**说明:**定义在成员位置中(方法或代码块外面),有或无static修饰。

1.可以直接访问外部类的静态的成员,不能访问非静态成员。

2.可以 添加任意权限修饰符

3.作用域,和其他成员一样作用在整个外部类

代码:


package local_class;

public class _static_localclass {//外部类
    private int n1=10;
    static int n2=20;
    static public class localN2{//静态局部类
        public void output(){
            //==1==.可以直接访问外部类的所有的成员,包括私有
            System.out.println("获取_static_localclass私有成员"+n2);
            //System.out.println(n1);
        }
    }
    //写一个方法来创建局部类的一个实列
    public void output(){
        localN2 LocalN2 = new localN2();
        LocalN2.output();
    }
}

成员内部类:用法比较简单。

二、局部内部类:

说明:局部类是定义在外部类的方法内或者代码块内。

1.可以直接访问外部类的所有的成员。

2.不能添加访问修饰符,局部内部类的地位就是一个局部变量(所以可以用fianl修饰)。

3.作用域:作用在所定义的方法中或者代码块中。

4.访问方式:局部内部类访问外部外部类成员可以直接访问。外部类访问局部内部类,在外部类作用域内先创建对象再访问。

5.外部其他类不能访问内部类。

6.外部类成员与内部类成员重名时,默认就近原则,如果想用外部类的话可以使用:外部类名.this.成员 。

例如:

2、有名的局部内部类

错误代码

正确代码


package _inner_class;

public class Named_local_inner_class {//外部类
    private int a1=1;
    int a2=2;
    private void fun(){
        System.out.println("输出了私有方法");
    }
    //第一种情况,在方法中
    //第二种情况,在代码块中(我就不打代码了和在方法中一样的)
    //此处以方法中为例。
    public void output(){//方法
    
        class inner_class{//局部内部类
            //1.可以访问外部类的所有成员
            public void _output(){
                System.out.println("a1="+a1);//访问的私有成员
                System.out.println("a2="+a2);
                fun();
            }

        }
		//只需要实例化就行了,然后调用这个 output()方法。
		//注意作用域
        inner_class Inner_class=new inner_class();
        Inner_class._output();
    }//结束方法


}//外部类

调用

1、匿名局部内部类(重要)

1.本质还是一个内部类 就是一个类,该类没有名字(其实有名字,只是我们看不见,系统分配)。

2.同时还是一个对象。 基本语法

new 类名或接口名(参数列表){
类体
};

调用匿名内部类:

输出

和有名的局部内部类的区分

1.A22对象只使用一次,以后不再使用时用匿名局部内部类。

2.A22的编译类型和运行类型是什么?(运行类型其实就是匿名局部内部类,就是XXXXX.外部类名$1)

如图:

最佳实践:当作参数直接传递,简介高效。

到此这篇关于学生视角带你了解Java内部类的文章就介绍到这了,更多相关Java 内部类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 学生视角带你了解Java内部类

本文链接: https://lsjlt.com/news/141371.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 学生视角带你了解Java内部类
    目录一、内部类介绍二、成员内部类:1、非静态内部类2、静态内部类二、局部内部类:2、有名的局部内部类1、匿名局部内部类(重要)一、内部类介绍 1.定义:一个类内部又嵌套了一个类,被嵌...
    99+
    2024-04-02
  • 学生视角手把手带你写Java 线程池初版
    目录Java手写线程池(第一代)手写线程池-定义参数手写线程池-构造器手写线程池-默认构造器手写线程池-execute方法手写线程池-处理任务手写线程池-优雅关闭线程池手写线程池-暴...
    99+
    2024-04-02
  • 学生视角手把手带你写Java 线程池改良版
    目录Java手写线程池(第二代)第二代线程池的优化线程池构造器线程池拒绝策略execute方法手写线程池源码MyExecutorServiceMyRejectedExecutionE...
    99+
    2024-04-02
  • Java中的内部类你了解吗
    目录成员内部类1.定义2.成员内部类的使用规则 3.成员内部类对象的创建:4.内部类与静态域静态内部类:1.定义:2.静态内部类的使用规则:3.静态内部类对象的创建&nbs...
    99+
    2024-04-02
  • 一文带你真正理解Java中的内部类
    目录概述内部类介绍和分类常规内部类局部内部类匿名内部类静态内部类静态内部类和普通内部类的区别内部类的作用概述 不知道大家在平时的开发过程中或者源码里是否留意过内部类,那有思考过为什么...
    99+
    2024-04-02
  • 带你了解Java常用类小结
    目录Java常用类包装类包装类中的常量包装类的构造方法包装类中的常用方法Math类枚举枚举定义枚举的常见方法总结Java常用类 包装类 由于Java语言中的基本类型不是面向对象,并不...
    99+
    2024-04-02
  • 带你了解Java的类和对象
    目录五丶封装(1)包的概念与创建1>概念2>创建(2)包的使用–导入包(3)封装定义–权限控制访问(4)补充些常用的包(小拓展)六丶关于static成员(1)修饰成员变量...
    99+
    2024-04-02
  • 一文带你全面了解Java Properties类
    目录概述介绍构造方法关键方法使用案例源码解析总结概述 Properties是JDK1.0中引入的java类,目前也在项目中大量使用,主要用来读取外部的配置,那除了这个,你对它其他的一...
    99+
    2024-04-02
  • 【JAVA】十分钟带你了解java的前世今生
    个人主页:【😊个人主页】 系列专栏:【初始JAVA】 文章目录 前言JAVA介绍诞生🔬名字与图标🤖发展🛩️未来🪄 前言 玩过我的世界的朋...
    99+
    2023-08-25
    java 开发语言
  • C++的友元和内部类你了解吗
    目录友元函数案例友元类内部类总结友元分为:友元函数 和 友元类 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。...
    99+
    2024-04-02
  • 深入了解Java内部类的用法
    目录1.内部类分类和概念2.局部内部类3.匿名内部类(重要)基于接口的匿名内部类基于类的匿名内部类一些细节匿名内部类的最佳实践4.成员内部类5.静态内部类1.内部类分类和概念 jav...
    99+
    2024-04-02
  • 一篇文章带你深入了解Java类加载
    目录1.类加载<1>.父子类执行的顺序<2>类加载的时机<3>类的生命周期<4>类加载的过程<5>类加载器1.启动类加载器...
    99+
    2024-04-02
  • 手把手带你粗略了解Java--类和对象
    目录认识类和对象1.类、对象是什么?2.什么是面向对象?3.一个对象的产生过程是?🔺OOP语言的三大特征?类和对象的实例化类的定义:注意:实例化对象:①如何访问对象中...
    99+
    2024-04-02
  • 一文带你了解Java万物之基之Object类
    目录native方法getClass方法hashCode方法equals方法==和equals的区别clone方法浅拷贝和深拷贝toString方法线程方法finalize方法Jav...
    99+
    2024-04-02
  • 一篇文章带你深入了解Java对象与Java类
    目录1.面向对象是什么?2.Java类1.什么是类2.Java类类的结构Java类的格式3.java对象4.类和对象5.类中的变量,方法1.变量分类成员变量:局部变量:2.方...
    99+
    2024-04-02
  • 【JAVA】一文带你了解java的数据类型与变量
    作者主页:paper jie的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将jav...
    99+
    2023-09-04
    java 开发语言
  • 一文带你了解 Flink Forward 柏林站全部重点内容
    作者:杨克特(鲁尼)...
    99+
    2024-04-02
  • 带你快速了解Java中类和对象的关系
    本文重点解读Java里的类和对象的关系 1、首先介绍两个概念 类:类是对现实生活中一类具有共同属性和行为事务的抽象,确定对象将会拥有的属性和行为。 对象:对象是类的一个实例(对象不...
    99+
    2024-04-02
  • 一文带你了解Java中基本数据类型的包装类
    这篇文章将为大家详细讲解有关一文带你了解Java中基本数据类型的包装类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java是面向对象的编程语言,包装类的出现更好的体现这一思想。 其次,包装...
    99+
    2023-05-31
    java 基本数据类型 包装类
  • ASP SiteMapPath的内部奥秘,带你了解网站导航新时代
    ASP SiteMapPath是ASP.NET中的一个内置控件,用于在网站中生成面包屑导航。它是一个很强大的控件,可以提供许多功能,例如: 创建一个层次结构的导航菜单 允许用户在网站中轻松地导航 帮助搜索引擎更好地了解网站的结构 使用...
    99+
    2024-02-02
    ASP SiteMapPath 网站导航 XML SiteMap SEO
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作