/*
匿名内部类:就是内部类的简写格式。
必须前提:内部类必须继承或者实现一个类或者接口。
匿名内部类其实就是一个匿名 子类对象。
格式:new 父类对象 or 接口(){子类内容;(覆盖父类的, 而且可以增加自己的方法)
}//相当于将 继承父类 和 new 的过程 写到了一起有某有!很方便有某有!
*/
class Outer{int num;public Outer(){num = 5;    }class Inner{int num;public Inner(){num = 10;}public void show(){//也就是调用该方法会有两个this指针入栈,why?很简单,因为内部类要访问外部类的数据啊!int num = 11;System.out.println("Inner part num " + num);//打印内部类中方法中的局部num变量System.out.println("Inner  num " + this.num);//打印内部类中num成员变量//System.out.println("Inner  num " + Inner.this.num);//打印内部类中num成员变量System.out.println("Outer  num " + Outer.this.num);//打印外部类中num成员变量}}public  void methods(){final int num = 55;//这个变量为什么一定要用final修饰呢?//因为如果不用final修饰,num就是一个局部变量,当这个函数结束之后就会消失!//而我们是在局部内部类的中访问这个num,这个类产生的对象是在堆上的,函数结束//对象也不会消失,那么这个对象在以后可能会多次访问这个num变量,这样就出错了!//如果是final, num 就是 55这一个值,不会变!class InnerTwo{void show(){System.out.println("part Inner final num = " + num);}}InnerTwo in = new  InnerTwo();in.show();}public void way(){System.out.println("******************************************");//普通内部类:new Inner().show();//匿名对象new Inner(){ // 匿名内部类public void show(){System.out.println("内部类的匿名类!");}}.show();//静态内部类:new InnerOne().way();new InnerOne(){public void way(){System.out.println("静态内部类的匿名类!");}}.way();//外部类:new Outer().show();new Outer(){public void show(){System.out.println("外部类的匿名类!");}}.show();}static class InnerOne{public static int num = 100;public void way(){System.out.println("静态内部类中的方法!");}public static void show(){System.out.println("static InnerOne num " + num);}  } public void show(){System.out.println("Outer num " + num);}
}public class PC{public static void main(String[] args){Outer out = new  Outer();out.show();Outer.Inner in = out.new Inner();in.show();   // out.InnerOne.show();//类的所属是类, 类是加载到方法区的,当然对象实例中不存在类;Outer.InnerOne.show();  //匿名类和匿名对象的测试:out.way();      }
}

  

转载于:https://www.cnblogs.com/hujunzheng/p/3871928.html

java匿名类和匿名对象及this的其他用法相关推荐

  1. Java中匿名子类 的 匿名对象、匿名子类 的 非匿名对象、非匿名类 的 匿名对象、非匿名类 的 非匿名对象

    /*** @Author: YuShiwen* @Date: 2020/11/18 2:06 PM* @Version: 1.0*/ public class AnonymousTest {publi ...

  2. .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法

    开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...

  3. Java中的匿名类和匿名对象

    匿名解释 匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储 匿名类/对象其实就是类/对象,对象具有的功能匿名类/对象都 ...

  4. java匿名类_Java匿名类

    java匿名类 Java anonymous class are like local class or inner class without a name. We can use java ano ...

  5. java匿名类和匿名函数的概念和写法

    前言: Lambda流式操作是Java8中重要的特性,lambda表达式核心概念为 函数式接口.::.-> 等基本语法,可以大大减少代码量的编写,使代码更加优雅 1.只有一个抽象函数的接口,就是 ...

  6. java 内部匿名类_java匿名类和匿名内部类详解

    匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类.其语法形式如下:new() { //类的主体 }; 这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一 ...

  7. 第八节:语法总结(2)(匿名类、匿名方法、扩展方法)

    一. 匿名类 1. 传统的方式给类赋值,需要先建一个实体类→实例化→赋值,步骤很繁琐,在.Net 3.0时代,微软引入匿名类的概念,简化了代码编写,提高了开发效率.  匿名类的声明语法:  var o ...

  8. java并发编程实践学习---java的类锁和对象锁

    最近在看Java Concurrent in Practice(java并发编程实践),发现自己对java的线程.锁等机制,理解很肤浅,学习的也不够全面.打算借着这本书,全面的学习下JDK的并发包和一 ...

  9. 匿名内部类和匿名类_匿名schanonymous

    匿名内部类和匿名类 Everybody loves a fad. You can pinpoint someone's generation better than carbon dating by ...

最新文章

  1. 多线程中局部静态变量初始化的陷阱
  2. java手动线程池使用_Java手动配置线程池过程详解
  3. sqlserver两个日期之间的年数_SQL语句计算两个日期之间有多少个工作日的方法
  4. Bootstrap自适应居中问题
  5. ubuntu下gedit查看txt中文乱码解决办法
  6. jQuery-ui-autocomplete
  7. 电信光猫DDNS的设置经历
  8. c语言写32位编译器,MinGW32 GCC编译器 V8.1 32位免费版
  9. 以下计算机网络新技术是什么,计算机网络新技术概述
  10. matlab二重积分计算程序,MATLAB在二重积分计算中的应用
  11. 飞机精确定位模型matlab,一种精确定位飞机位置的方法与流程
  12. pytorch 提取权重_获取Pytorch中间某一层权重或者特征
  13. Mac使用系列之软件安装权限
  14. 【懒人福利】自动记录操作步骤
  15. java tt-7s-d_JAVA TT-7S-D 超轻7速折叠自行车质量_参数_评价
  16. 人工智能学习路线图(超详细、超全面)
  17. 机器学习 api_开发人员会喜欢的10种机器学习API
  18. 服务器跑压力测试死机,我用鲁大师温度压力测试怎么死机了啊
  19. 阿里云ACP云计算对象存储OSS例题
  20. Matlab求解常微分方程组

热门文章

  1. canal本地运行异常:class com.alibaba.druid.pool.DruidDataSource cannot be cast to
  2. kibana 后台启动
  3. Flowable 数据库表结构 ACT_HI_ACTINST
  4. 基于Docker的Mysql主从复制搭建_mysql5.7.x
  5. Tomcat10 开机启动 Linux环境
  6. Linux操作系统需要做的准备
  7. VSCODE远程连接服务器,远程开发。
  8. java 读取jar包中的文件
  9. python3-datetime 时间处理
  10. 4________请拖拽到此区域5________请拖拽到此区域_5分钟学会:蒙版与通道(剪贴蒙版)...