问:
class Outer
{
int i=5;
class Inner
{
int i=4;
public void test()
{
int i=3;
System.out.println(i);//注释1
System.out.println(this.i);//注释2
System.out.println(Outer.this.i);//注释3
}
}
public static void main(String []args)
{
Outer out=new Outer();
Outer.Inner inner=out.new Inner();
inner.test();
}
}
这里的注释2的this 和注释3的Outer.this不都是那个inner对象吗 那个注释3我很不理解 谁可以给我详细的解释下
答:
首先打印的结果是
3
4
5
3是函数体test的私有变量,在函数test内可见,除了这个范围就不可见;
4是函数test所从属的类实例的变量,即inner类实例的变量,仅在inner类实例的范围内可见;
5是Outer类实例的变量i,不是指inner类。
你要记住,在Java中,this关键字指的是某个类的实例,Outer.this指的是Outer类的实例;如果this前面没有指定范围,那么this指的是本类的作用域范围,在函数体test中,this的范围只能向上延伸至inner
分享到:
相关推荐
在静态嵌套类内部,不能访问外部类的非静态成员变量,这是由 Java 语法中“静态方法不能直接访问非静态成员”所限定。若想访问外部类的变量,必须通过其他方法解决。由於这个原因,静态嵌套类使用很少。 三、非静态...
在给定的文档中,讨论的是如何从Java嵌套类中访问外部类的成员以及一些相关的概念。 首先,嵌套类分为两种主要类型:静态嵌套类(也称为内部静态类)和非静态嵌套类(也称为实例内部类)。非静态嵌套类可以访问外部...
### Java嵌套类详解 #### 一、嵌套类(Nested Class)概述 嵌套类是一种在Java中非常有用的特性,允许开发者在一个类或者接口的内部定义另一个类。这种结构可以增强代码的组织性和封装性。 ##### 1.1 嵌套类的...
深入理解Java嵌套类和内部类 Java 嵌套类(nested classes)是指在一个类的内部定义另一个类,这种类有两种类型:静态嵌套类和非静态嵌套类。非静态嵌套类也称为内部类(inner classes)。在Java中,嵌套类从JDK1.1...
在Java语言中,嵌套类(Nested Classes)是Java语言规范中定义的术语,指的是在其他类或接口的主体内部声明的类。嵌套类可以细分为多种类型,每种类型都有其特点和使用场景。 首先,根据嵌套类定义的位置,可以将...
本Java精华内容深入Java API、嵌套类和内部类、与时间有关的类Date,DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及...
### Java静态内部类(嵌套类)详解 #### 一、静态内部类概念与特性 在Java编程语言中,静态内部类(也被称为嵌套类)是一种特殊的内部类形式,它通过`static`关键字来定义。与普通内部类相比,静态内部类具有以下...
Java的静态嵌套类通常用于创建与外部类紧密相关的辅助类,但又不需要直接访问外部类的实例。这样做可以保持代码的封装性,同时避免创建过多的顶级类。例如: ```java public class OuterClass { public static ...
Java中的嵌套类和内部类是面向对象编程中一种特殊的类定义方式,允许在一个类的定义内部创建另一个类。这种特性使得代码结构更加紧凑,同时也提供了更高级别的封装和抽象。在Java中,嵌套类分为静态嵌套类和非静态...
详解Java中的嵌套类与内部类 ...通过上面的示例程序,我们可以看到Java中的嵌套类与内部类的使用方法和访问规则。Java中的嵌套类与内部类可以帮助我们更好地组织代码,提高代码的可读性和可维护性。
在给定的标题“漂亮的java嵌套浏览器IE,chrome”中,我们可以看出这是关于一个Java库,它支持内嵌两种流行的浏览器引擎:Internet Explorer(IE)和Google Chrome。这样的功能对于开发需要展示网页内容或与网页交互...
局部嵌套类可以访问外围类的所有成员变量和方法,以及方法中的局部变量。 3. 匿名嵌套类(Anonymous Nested Class) 匿名嵌套类是没有显示定义的类,直接通过new的方法创建类的实例。匿名嵌套类通常用于回调模式。...
静态嵌套类不能访问外部类的非静态成员变量和方法,但是可以访问外部类的静态成员变量和方法。 方法内部类 方法内部类是指定义在外部类的方法中的内部类。方法内部类可以访问外部类的所有成员变量和方法,包括私有...
《Java语言基础入门教程》中的第14章主要介绍了嵌套类的相关概念及其使用方法。本章旨在通过详细的解析帮助读者理解和掌握嵌套类的基础知识以及如何在实际编程中应用这些知识。 #### 二、知识点概览 ##### 2.1 ...
在给定的"漂亮的java嵌套火狐内核浏览器"项目中,开发者利用Java语言实现了以火狐内核为基础的嵌入式浏览器,旨在提供一种美观且高效的浏览体验。这个项目的特色在于它将火狐的浏览能力整合到Java应用程序中,使得...
3. 行为分组:将相关的功能方法封装在嵌套类中,有助于代码的模块化和可维护性。 4. 实现回调机制:匿名内部类可以作为参数传递,实现回调函数的效果。 四、示例代码 以下是一个简单的静态嵌套类示例: ```java ...
Java中的嵌套类是一种强大的特性,它允许在一个类的内部定义另一个类。这种设计模式提供了更高的封装性和灵活性,尤其在处理复杂的数据结构和算法时。本文将深入探讨嵌套类的详解及其实例代码。 首先,我们要区分两...
- 这种情况下,由于静态方法无法直接访问非静态成员,需要先创建一个类的实例,然后通过该实例来调用非静态方法。 - 调用格式:`ClassName instance = new ClassName(); methodName(参数1, 参数2, ...);` - 示例...
Java JDK11引入了一个名为“嵌套访问控制”的特性,这一特性主要针对内部类和嵌套类的访问机制进行了优化。在Java编程中,内部类(也称为嵌套类)可以访问外部类的私有成员,这是通过编译器生成额外的桥接方法来实现...
Java内部类主要包括以下几种类型:成员内部类(非静态内部类)、静态内部类(也称为静态嵌套类)、局部内部类和匿名内部类。 - **成员内部类**:这种类型的内部类是定义在外部类的一个成员位置上,它可以访问外部类...