匿名内部类和内部类中的this
package test; public class A extends B { public String toString() {
return "A";
} public static void main(String[] args) {
A a = new A();
a.say(); A.AIn aa = a.new AIn();
aa.bin(); } class AIn extends BIn{ } }
package test; public class B {
public Thread thread; public void say() {
//输出A
System.out.println(this.toString());
// 输入A,父类方法中使用真正子类对象用"父类.this"
System.out.println(B.this.toString()); say1(new I() {
public void II() {//匿名内部类的this
System.out.println(this);//B$1
System.out.println(B.this);//A
// System.out.println(A.this); 父类是访问不到子类A的,只能写B. 不能写B.A的属性,只能写B.B的属性,也就是给子类A对象赋值,因为访问不到A的任何东西
thread = Thread.currentThread();
B.this.thread = Thread.currentThread();
}
});
} public String toString() {
return "B";
} public void say1(I i) {
i.II();
} class BIn{
public void bin() {
B.this.thread = Thread.currentThread();
// A.this.thread = Thread.currentThread(); 父类是访问不到子类A的,只能写B.
System.out.println(B.this);//A
}
}
}
package test; public interface I {
void II();
}
匿名内部类和内部类中的this的更多相关文章
- java 泛型深入之Set有用工具 各种集合泛型深入使用演示样例,匿名内部类、内部类应用于泛型探讨
java 泛型深入之Set有用工具 各种集合泛型深入使用演示样例,匿名内部类.内部类应用于泛型探讨 //Sets.java package org.rui.generics.set; import j ...
- 错误: 从内部类中访问本 地变量vvv; 需要被声明为最终类型
从github 下载了源码, 进行编译, 出现了下面的错误 E:\downloads\ff\elasticsearch-master\elasticsearch-master>GRADLE :b ...
- java匿名内部类之RocketMQ中的应用
匿名内部类在spring中没怎么见用,在RocketMQ中有大量的应用. 确实可以提高开发效率.这可能代表两种写代码的态度吧. 匿名内部类简单来说就是直接在函数中实现接口方法,不需要声明一个接口实现类 ...
- 为什么局部内部类中访问同一方法中的变量,该变量一定要是final修饰的
最近有一个疑惑:为什么局部内部类中访问同一方法中的变量,该变量一定要是final修饰的 首先,我们看一个局部内部类的例子: class OutClass { ...
- java中内部类中还有内部类请给实例!
2.当内部类中还有一个内部类,下面给出了一个实例.[新手可忽略不影响继续学习](以下多出代码, 用蓝色标记)例2.2:class ShellMark_to_win { int shell_x = ...
- Java中的匿名内部类及内部类的二三事
匿名内部类适合创建那些只需要使用一次的类,它的语法有些奇怪,创建匿名内部类会立即创建一个该类的实例,这个类定义立即消失,且不能重复使用. 定义匿名类的格式如下: new 实现接口() |父类构造器(实 ...
- 内部类中class声明地方不同,效果不一样
1.一个声明在类中,一个声明在类的方法中.在类中的方法中声明内部类,其方法中的内部类调用 内部类外中的变量,变量必须final class Outter{ int x1 = 0; public voi ...
- Java中内部类中使用外面变量为什么final修饰?
所以final从语法上约束了实际上两个不同变量的一致性(表现为同一变量). 我的理解: 例如这样的代码: public void test(String str){ str="abc&quo ...
- java-多态、内部类
1.多态: 1)意义: 1.1)同一类型的引用,指向不同的对象时,有不同的实现-------行为的多态: cut(),run(),teach()... 1.2)同一个对象,被造型为不同的类型时,有不同 ...
随机推荐
- ITouch在xcode下提示‘No such file or directory, at ‘/SourceCache/DVTi...'
版权声明:本文为博主原创文章,转载或又一次发表请先与我联系. https://blog.csdn.net/jonahzheng/article/details/37692733 用一个台老 ...
- SQL Anywhere .NET
SQL Anywhere .NET 支持 1.ADO.NET 是 Microsoft 的 ODBC.OLE DB 和 ADO 系列中最新的数据访问 API.它是 Microsoft .NET Fram ...
- v-show 和 v-if 对 v-chart的影响
借鉴:https://blog.csdn.net/xiaxiangyun/article/details/78909991 使用v-show控制tab切换 其中一个tab数据请求后显示第二个tab,第 ...
- ROS开发与常用命令
初始化ROS的catkin工作空间:catkin_init_workspace 编译ROS的catkin工作空间:catkin_make 读取当前catkin工作空间的环境变量:source deve ...
- cmd项目目录结构以及配置文件的升级编写
一.项目的目录结构: bin:执行文件夹 config:自定义配置文件 lib:公共的模块或者类文件 src:核心业务逻辑代码 二.配置文件的编写 1)config代码如下 from lib.conf ...
- 转发(forward)和重定向(redirect)
转发和重定向 参考:http://www.2cto.com/kf/201107/97118.html 以前写的一个注册页面: package com.ifly.bbs.controller; impo ...
- PHP中的回调函数
回调函数是指调用函数的时候将另一个函数作为参数传递到调用的函数中,而不是传递一个普通的变量作为参数 使用回调函数是为了可以将一段自己定义的功能传到函数内部使用 声明回调函数的方法 变量函数声明 1 2 ...
- 【Java】-NO.20.Exam.1.Java.1.001- 【1z0-807】- OCEA
1.0.0 Summary Tittle:[Java]-NO.20.Exam.1.Java.1.001-[1z0-807] Style:EBook Series:Java Since:2017-10- ...
- java编写的Http协议的多线程下载器
断点下载器还在实现中...... //////////////////////////////////界面/////////////////////////////////////////// pac ...
- [LeetCode] 619. Biggest Single Number_Easy tag: SQL
Table number contains many numbers in column num including duplicated ones.Can you write a SQL query ...