局部内部类定义 定义格式: 修饰符 class 外部类名称 { 修饰符 返回值类型 外部类方法名(参数列表){ class 局部内部类名称{// ... } } } 小杰一下类的权限修饰符: public > protected > (default) >private 定义一个类的时候,权限修饰符规则: 1. 外部类:public / (default) 2.成员内部类:public / protected /default) / private 3.局部内部类:什么都不能写 局部内部…
首先,我们看一个局部内部类的例子: class OutClass { private int age = 12; public void outPrint(final int x) { class InClass { public void InPrint() { System.out.println(x); System.out.println(age); } } new InClass().InPrint(); } } 这里有一个外部类 OuterClass 和一个内部类 InClass,内…
内部类: 1.定义在一个类中的内部类,内部类的实例化伴随着外围类所定义的方法来构造,内部类对象有外围类的隐式引用,所以内部类可以直接访问外围类的外围类的域,包括私有的,这是内部类的访问特权,所以比常规类功能更加强大. 2.内部类可以对同一个包中的其他类隐藏起来,不过可以通过 OuterClass.InnerClass来引用public声明的内部类. 局部内部类: 1.内部类挪到方法内部,与内部类相比,局部内部类不仅可以访问定义他们的外部类,还可以并且仅可以访问声明为final的局部变量. 2.类…
好文转载:http://blog.csdn.net/zhangjg_blog/article/details/19996629 开篇 在我的上一篇博客 深入理解Java中为什么内部类可以访问外部类的成员  中, 通过使用javap工具反编译内部类的字节码, 我们知道了为什么内部类中可以访问外部类的成员, 其实是编译器在编译内部类的class文件时,偷偷做了一些工作, 使内部类持有外部类的引用, 并且通过在构造方法上添加参数注入这个引用, 在调用构造方法时默认传入了外部类的引用. 我们之所以感到疑…
https://codeforces.com/contest/1140/problem/E 局部dp + 定义状态取消后效性 题意 给你一个某些位置可以改变的字符串,假如字符串存在回文子串,那么这个字符串就是坏的,问有多少好的串(n<=2e5) 题解 首先发现只需要保证\(s[i-2]!=s[i]\)(局部保证),就可以保证不存在回文子串 直接计算有多少个好的串(即不存在回文子串的情况) 分奇偶位考虑,因为假如奇偶位都合理,那么就不存在1,2,3,2,1这种情况,这个序列考虑奇数位是1,3,1,…
01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; class Inner { // 定义一个内部类 public void print() { System.out.println(Outer.this.msg); } } } /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { pub…
01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; class Inner { // 定义一个内部类 private String info = "世界,你好!"; // 内部类的私有属性 public void print() { System.out.println(msg); // 直接访问外部类的私有属性 } } public void fu…
01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; public void fun() { // this表示当前调用fun()方法的对象,在本程序中主方法由out对象调用,所以this就是out new Inner(this).print(); // 实例化内部类对象,并且调用print()方法 } /*内部类需要访问msg属性,但是此属性属于Outer类,而在Out…
先看下面这段代码: public class Test { public static void main(String[] args) { } public void test(final int b) { final int a = 10; new Thread(){ public void run() { System.out.println(a); System.out.println(b); }; }.start(); } } 这段代码会被编译成两个class文件:Test.class…
权限修饰符, Public  >protected >default > private public 公共权限   随便都可以访问 protected  子类可以访问权限  (子类跨包访问父类) package day04.demo01; public class Demo02 { public void public01(){} protected static void protected01(){ System.out.println("protected")…