public class test {
private final int a;
public test(int a) {
this.a = a;
}
private int getA() {
return a;
}
public void exec() {
new test(1) {
public void print() {
System.out.println(getA());// 0
}
}.print();
}
public static void main(String[] args) {
new test(0).exec();
}
}
public class test {
private final int a;
public test(int a) {
this.a = a;
}
public int getA() {
return a;
}
public void exec() {
new test(1) {
public void print() {
System.out.println(getA());// 1
}
}.print();
}
public static void main(String[] args) {
new test(0).exec();
}
}
差别在于getA()方法的可见性
分享到:
相关推荐
匿名内部类是一种没有名字的内部类,它常用于实现接口或者继承一个类,并且只需要一次使用的情况。其基本语法形式如下: ```java new ParentClass() { @Override public void method() { // 实现代码 } }; ``` ...
匿名内部类是内部类的一种特殊形式,它没有类名,常用于一次性创建的对象,特别是在需要实现一个接口或继承一个类,但又不需要额外的方法时。例如,事件监听器的回调函数常常使用匿名内部类来实现。 2. **匿名内部...
最后,内部类可以继承外部类,但这样的设计通常是为了实现特定的继承和多态效果,应谨慎使用。 源码示例中应该包含了各种内部类的使用场景,通过阅读和理解这些代码,初学者能够更好地掌握内部类的工作原理和使用...
匿名内部类没有显式的名字,通常用于简化代码,尤其是在实现接口或继承类时。它具有以下特点: 1. **语法格式**:匿名内部类的语法格式是“new 父类(参数列表) { 类体 }”,或者“new 接口() { 方法实现 }”。 2. *...
- **匿名内部类**:没有名字的内部类,通常用于实现接口或继承类时简化代码,主要应用在事件监听器等场景。 #### 二、内部类的创建与使用 1. **成员内部类的创建**: - 创建成员内部类的对象时,需要先创建外部类...
静态内部类虽然在形式上类似于成员内部类,但可以独立于外部类实例存在,因为它们有自己的生命周期。 内部类的一个关键特性是它可以访问外部类的私有成员,包括变量和方法,这为代码的封装提供了便利。同时,内部类...
例如,在 `AccessStaticInnerClass` 类中,我们可以通过 `StaticInnerClass.prop1` 的形式来访问静态内部类 `StaticInnerClass` 的静态属性 `prop1`。 ```java public class AccessStaticInnerClass { static ...
Java语言中的静态内部类,也称为嵌套类,是内部类的一种特殊形式,它与非静态内部类(也称为成员内部类)相比有着独特的特点和使用场景。在深入探讨其使用规范之前,我们先理解静态内部类的基本概念。 静态内部类不...
3. **匿名内部类**:匿名内部类是一种没有名称的内部类,它通常用于实现接口或继承类,并立即创建其实例。这种类型的内部类只能在定义时使用一次,不能再次引用。 4. **静态内部类(静态嵌套类)**:静态内部类使用...
匿名内部类必须继承一个父类或实现一个接口。 ##### 格式 ```java new 父类或者接口() { /* 执行代码 */ }; ``` ##### 示例 ```java class Outer { public void print() { new Runnable() { // 匿名内部类实现...
10. 内部类与Lambda表达式:Java 8引入的Lambda表达式可以视为匿名内部类的一种简化形式,尤其是在处理函数式编程场景时。 总之,Java的内部类是一种强大的工具,可以提高代码的可读性和可维护性。通过理解并熟练...
匿名内部类是没有名称的内部类,通常用于实现接口或者继承父类。它只能在一个表达式中定义并创建对象。匿名内部类主要用于简化代码,特别是当内部类只用一次的时候。 示例代码: ```java public class First { ...
1. **成员内部类**:这是最常见的内部类形式,它可以作为外部类的成员存在,拥有访问外部类的所有成员的权限,包括私有成员。成员内部类可以是静态的,也可以是非静态的。静态内部类不持有对外部类的引用,而非静态...
成员内部类是最常见的内部类形式,它作为外部类的一个成员出现。它可以是静态的也可以是非静态的。成员内部类可以直接访问外部类的所有成员,包括私有的成员。 ##### 3.2.2 局部内部类 局部内部类在方法或其他代码...
当内部类实现了接口或者继承了抽象类时,它必须实现或覆盖接口或抽象类的所有方法。 9. 内部类与外部类的交互 内部类可以覆盖外部类的方法,内部类也可以访问外部类的私有变量。 10. Java内部类的限制和注意事项 ...
这种设计模式在处理某些特定情况时非常有用,比如当一个类的实例与另一个类紧密关联,或者需要实现某种形式的多继承。在这个实验中,我们将深入探讨内部类的几种典型应用,以及它们如何帮助我们理解和利用面向对象...
4. **匿名内部类**:没有名字的内部类,通常用于实现接口或继承类时立即创建实例,常用于事件监听器等场景。 #### 为何需要内部类? 内部类的主要优势在于它们能够独立于外部类进行继承。这意味着即使外部类已经...