内部类

在类定义也有类,在该类上的内部被称为一个内部类。

访问功能:

1,内部类可以直接访问外部类成员,它包含私有成员

2,外部类需要访问内部类的成员将需要建立一流的内部对象。

一般用于类的设计。

分析事物时,发现该事物描写叙述中还有事物,并且这个事物还在訪问被描写叙述事物的内容。

这时就把还有的食物定义成内部类来描写叙述。

直接訪问外部类中的内部类中的成员

class Outer
{
class Inner
{
}
}
class Innerclassdemo
{
public static void main(String [] args)
{
Outer.Inner in =new Outer().new Inner();
}
}

假设一个内部类是静态的。相当于一个外部类,样例例如以下

class Outer
{
static class Inner
{
}
}
class Innerclassdemo
{
public static void main(String [] args)
{
Outer.Inner in =new Outer.Inner();
}
}

注意:假设内部类中定义了静态成员。该内部类也必须是静态的。

内部类訪问外部类的样例

class Outer
{
int num =3;
class Inner
{
int num =4;
void show()
{
int num =5;
System.out.println(num);//5
System.out.println(this.num);//4
System.out.println(Inner.this.num);//4
System.out.println(Outer.this.num);//3
}
}
}
class InnerClass
{
public static void main(String [] args)
{
Outer.Inner in =new Outer().new Inner();
in.show();
}
}

为什么内部类能直接訪问外部类中的成员?

由于内部类持有了外部类的引用。

外部类名.this

局部内部类

在局部内部类中,要訪问外部类的局部变量时,该局部变量须要被final修饰。比較简单就不粘代码了。

匿名内部类

前提:

内部类必须继承一个外部类或实现一个接口。

匿名内部类:就是一个匿名子类对象。

格式:new 父类 or 接口(){子类内容}

通常使用的场景:

当函数參数是接口类型时,并且接口中的方法不超过三个。能够使用匿名内部类作为实际參数进行传递。

abstract class Inter {
abstract void show1();
abstract void show2();
}
class InnerClass
{
public static void main(String []args){
show(new Inter (){
public void show1(){
System.out.println("show1");
}
public void show2(){
System.out.println("show2");
}
});
}
public static void show (Inter in){
in.show1();
in.show2();
}
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

java语言内部类和匿名内部类的更多相关文章

  1. 十一、Java基础---------内部类与匿名内部类

    内部类分为普通内部类(有名)和匿名内部类.普通内部类分为成员内部类.局部内部类.静态内部类(嵌套内部类).顾名思义,内部类就是定义在一个类内部的类.什么时候都会使用内部类呢?当我们定义一个类,发现内部 ...

  2. java的内部类及匿名内部类

    在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类 内部类和外层封装它的类之间存在逻辑上的所属关系 Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称 ...

  3. Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

    最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调.接下来我们就来看看Java语言中是如何 ...

  4. “全栈2019”Java第一百一十章:局部内部类与匿名内部类区别详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. Java之有名内部类和匿名内部类

    Java内部类 定义在外部类中的类就是内部类:内部类的定义是为了更清楚.详细地描述事物. 有名内部类和匿名内部类 Java语言根据内部类是否有类名将内部类分为有名内部类和匿名内部类(没有类名). 有名 ...

  6. Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口

    目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...

  7. Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

    Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液 ...

  8. java之内部类(InnerClass)----非静态内部类、静态内部类、局部内部类、匿名内部类

    提起java内裤类(innerClass)很多人不太熟悉,实际上类似的概念在c++里面也有,那就是嵌套类(Nested Class),关于这俩者的区别,在下文中会有对比.内部类从表面上看,就是在类中定 ...

  9. java 内部类、匿名内部类

    一:内部类 1:什么是内部类? 大部分时候,类被定义成一个独立的程序单元.在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类(有些地方也叫做嵌套类),包含内部类的 ...

随机推荐

  1. DDDLite的权限管理

    领域驱动设计实战—基于DDDLite的权限管理   在园子里面,搜索一下“权限管理”至少能得到上千条的有效记录.记得刚开始工作的时候,写个通用的权限系统一直是自己的一个梦想.中间因为工作忙(其实就是懒 ...

  2. docker-gitlab(转)

    Issues Docker is a relatively new project and is active being developed and tested by a thriving com ...

  3. [ACM] HUST 1017 Exact cover (Dancing Links,DLX模板题)

    DESCRIPTION There is an N*M matrix with only 0s and 1s, (1 <= N,M <= 1000). An exact cover is ...

  4. ubuntu 下安装crypto

    直接运行apt-get install python-crypto 就好了

  5. jquery:ajax不接收返回值回

    html页面a加元素的假设href=javasrcipt:void(0)会导致ajax没有收到回后台值. : <p class="chatmsg_load_more"> ...

  6. Data source rejected establishment of connection, message from server: &quot;Too many connections&quot;

    错误叙述性说明: 測试一段时间没有不论什么问题.今天突然用户无法登录,报错如Data source rejected establishment of connection,  message fro ...

  7. SQL Server 内存泄露(memory leak)——游标导致的内存问题

    原文:SQL Server 内存泄露(memory leak)--游标导致的内存问题 转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/07/01/sql ...

  8. NOI第一天感想&小结

    嘛...中午总算是到了深圳了--在虹桥机场和飞机上和市队大神们一起讨论各种各样奇(sang)葩(bing)的算(ren)法(lei)还是非常开心的,在此再各种膜拜一下尽管没来比赛的FFT大神@陈中瑞 ...

  9. Cocos观察者设计模式和通报机制

    观察员(Observer)模式也称为公告/订阅(Publish/Subscribe)模式.这是 MVC( 模型-视图-控制器)模型的重要组成部分.天气一直讨论的英国最喜欢的话题,近期天气变化几年已成为 ...

  10. java它们的定义jar套餐读Excel(这包括2003和2007)数据,和实例

    使用java它们的定义jar套餐读excel数据支持excel2007和excel2003 在http://download.csdn.net/detail/u010792467/8079355下载所 ...