一、.this

  我们都知道this是指当前类中的对象本身,但是在内部类中需要指明外部类时,this不再起作用,那应该怎么做呢?下面,让我们看看:

public class DotThis {void f() {System.out.println("DotThis.f()");}public class Inner {public DotThis outer() {return DotThis.this;//A plain "this" would be Inner's "this"
        }
    }public Inner inner() {return new Inner();}public static void main(String[] args) {DotThis dt = new DotThis();Inner dti = dt.inner();//DotThis.Inner dti = dt.inner(); can be the same as pre line.
        dti.outer().f();}
}

二、.new

  有时你可能想要告知某些对象,去创建其某个内部类的对象。要实现此目的,你必须在new表达式中提供对其他外部类对象的引用,这是需要使用.new语法,就像下面这样:

public class DotNew {public class Inner {public Inner() {System.out.println("DotNew.Inner.Inner()");}}public static void main(String[] args) {DotNew dn = new DotNew();     //ok
//        Inner dni = new Inner();      //okInner dni = dn.new Inner();   //okDotNew.Inner dny = dn.new Inner();   //ok
    }
}

转载于:https://www.cnblogs.com/wiessharling/p/3620131.html

内部类之.this.new相关推荐

  1. java 局部内部类的理解

    局部内部类: 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内 例如: //外部类public static class Man { ...

  2. java 内部类的理解

    内部类概念: 一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类 内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类 成员内部类 在一个类的成员方法中.或者说,定义在一 ...

  3. java内部类的权限符,static介绍、内部类、final、权限修饰符的作用范围,

    static介绍.内部类.final.权限修饰符的作用范围,static 关键字:(可用于修饰方法.变量) static 特点: static是静态修饰符,一般修饰成员变量.被static修饰的属于全 ...

  4. Java内部类手机专卖店_Java(20)内部类

    内部类 一个定义在另一个类里面的类称为内部类.内部类可以分为四种形式:成员内部类, 成员内部类 内部调用外部的属性和方法 成员内部类可以无条件访问外部类的所有成员属性和方法. 其他类(例子中的RunC ...

  5. 【Java入门提高篇】Day6 Java内部类——成员内部类

    内部类是什么,简单来说,就是定义在类内部的类(一本正经的说着废话). 一个正经的内部类是长这样的: public class Outer {class Inner{} } 这是为了演示而写的类,没有什 ...

  6. 【java】兴唐第十九节课(内部类)

    内部类:在类的内部定义的类叫内部类 1.有名内部类: (1)实例化时必须先实例化外部对象,格式: 外部类.内部类 对象名 = 外部类对象名.new.内部类名(): 代码实现: //student类 p ...

  7. 有名内部类 匿名内部类

    内部类,从名字上就可以看出,是定义在外部类里的类,可以更加详细地说明某个事物的特征,举个例子,就像一个人(把他定义为一个类[外部类]),这个人有大脑.肝脏.心脏等器官,这些器官都有自己特有的属性,但又 ...

  8. java基础(十三)-----详解内部类——Java高级开发必须懂的

    java基础(十三)-----详解内部类--Java高级开发必须懂的 目录 为什么要使用内部类 内部类基础 静态内部类 成员内部类 成员内部类的对象创建 继承成员内部类 局部内部类 推荐博客 匿名内部 ...

  9. 深入理解Java中为什么内部类可以访问外部类的成员

    内部类简介 虽然Java是一门相对比较简单的编程语言,但是对于初学者, 还是有很多东西感觉云里雾里, 理解的不是很清晰.内部类就是一个经常让初学者感到迷惑的特性. 即使现在我自认为Java学的不错了, ...

  10. java内部类 缺点_Java中的内部类及其优势

    Java中提供了定义内部类的选择,这一机制使得代码的书写更为方便和优雅(功能上相关的代码被紧密的组织在了一起). 需要注意的是,内部类和传统的组合(即将一个类的实体定义为另一个类的成员)是完全不同的, ...

最新文章

  1. Akka2使用探索1(Remoting)
  2. lua脚本简单编辑及常用指令
  3. HDU 2034 人见人爱A-B【STL/set】
  4. onclick 调用php,AJAX调用PHP简单应用
  5. python 随机字符串_python生成随机数、随机字符串
  6. LeetCode 311. 稀疏矩阵的乘法
  7. GoogLeNet的心路历程(三)
  8. grafana + influxdb + telegraf , 构建性能监控平台
  9. python语言的主网址-python如何获得一个url地址对应的跳转后的最终网址
  10. 【几个关于CSS的网站】
  11. RS232/RS485转4G DTU 上传基于Modbus协议的温湿度传感器数据到远程TCP服务器
  12. 电脑卸载了bandzip,但是在文件的打开方式里面还是有bandzip,注册表里又搜不到相关文件,如何解决?
  13. 无名小站超雅虎奇摩成台湾第一大网站
  14. 实现虚拟机与板卡/树莓派网络互联,并通过笔记本wifi共享上网
  15. linux 主机支持远程唤醒_Linux远程开机
  16. 高德导航在天地图显示
  17. 计算机辅助项目管理课程方案,计算机辅助项目管理课程设计-20210310112313.pdf--原创力文档...
  18. Win32 IME 编程心得【转】
  19. Javascript版开心农场
  20. 微信公众号授权登录之二(tp5)

热门文章

  1. 公司设备损坏了,怎么处理
  2. 解决办法:string in namespace std does not name a type
  3. 管理感悟:你的能力是有限的
  4. LINUX使用C调用LMDB的方法
  5. 一个简单的获取时间的程序
  6. oracle复制数据库文件,Oracle备份与恢复系列(四)复制数据库 使用原有的控制文件...
  7. Dxg——Raspberry Pi Pico python 开发笔记整理分类合集【所有的相关记录,都整理在此】
  8. wpf mysql课程设计_使用 WPF 和 MySQL 搭建小型人资管理系统——主要页面
  9. Linux 常用函数
  10. 关于mysql数据库的说法错误的是_MYSQL数据库2013-2014学年考试试卷