iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java内部类是什么
  • 506
分享到

Java内部类是什么

2023-06-29 10:06:31 506人浏览 安东尼
摘要

这篇文章主要为大家展示了“Java内部类是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java内部类是什么”这篇文章吧。一、内部类介绍定义:一个类内部又嵌套了一个类,被嵌套的类就是内部类(

这篇文章主要为大家展示了“Java内部类是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java内部类是什么”这篇文章吧。

一、内部类介绍

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

分类:

Java内部类是什么

二、成员内部类:

1、非静态内部类

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

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

可以 添加任意权限修饰符

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

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();    }}

实现:

Java内部类是什么

2、静态内部类

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

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

Java内部类是什么

可以 添加任意权限修饰符

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

代码:

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();    }}

Java内部类是什么

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

二、局部内部类:

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

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

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

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

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

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

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

例如:

Java内部类是什么

Java内部类是什么

2、有名的局部内部类

错误代码

Java内部类是什么

正确代码

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();    }//结束方法}//外部类

调用

Java内部类是什么

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

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

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

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

Java内部类是什么

调用匿名内部类:

Java内部类是什么

输出

Java内部类是什么

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

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

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

如图:

Java内部类是什么

Java内部类是什么

以上是“Java内部类是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Java内部类是什么

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作