参考链接: Java中的嵌套类 在Java中我们在一个类的内部再定义一个类,如下所示: class OuterClass { ... ...内部类与静态嵌套类虽然都是嵌套类,但在使用上是有一些区别的。 内部类 比如有如下内部类的定义, class OuterClass { ... ...这样innerObject就可以访问outerObject内的所有成员属性以及方法了。 那如果想直接跳过外围类去初始化内部类会怎么样呢?...静态嵌套类 有些人把静态嵌套类成为静态内部类,其实静态内部类这个称呼不严谨,因为内部类都是非静态的。...由于静态嵌套类没有像内部类那样绑定外部类对象,所以也就不存在静态嵌套类不能访问其外围类的成员这种说法。
尤其是Static 修饰类和修饰对象和变量不一样呢? 定义 1. 内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类; 嵌套类是其封闭类的成员。...静态内部类 再一个普通类里面,给内部类加上static关键字的修饰; 与类方法和变量一样,静态嵌套类与其外部类相关联。...Java 拥有嵌套类有什么作用呢? 这是一种对仅在一个地方使用的类进行逻辑分组的方法:如果一个类仅对另一个类有用,那么将其嵌入该类并将两者保持在一起是合乎逻辑的。...当Java编译器编译某些构造(例如内部类)时,它会创建综合构造。 这些是类,方法,字段以及其他在源代码中没有相应构造的构造。合成构造使Java编译器无需更改JVM就可以实现新的Java语言功能。...总结 嵌套类:内部类和静态内部类 内部类属于外部类的成员,必须依赖与外部对象来实现,静态内部类,不依赖,可以自己单独实现。 static 的修饰 变量,类,方法,代码块。 共性全局性。
这个语法的主要用途是:在内部类的方法中,要指定某个嵌套层次的外围类的“this”引用时,使用“外围类名.this”语法。...onClick(View v) { new AlertDialog.Builder(MainActivity.this).setTitle("系统提示"); } }); 这个内部类为...AlertDialog.Builder,为了引用外部类的对象,就要MainActivity.this 如果直接this则指代内部类本身。
嵌套类有四种: 静态成员类(static member class); 非静态成员类(nonstatic member class); 匿名类(anonymous class); 局部类(local class...除了第一种外,其他三种都被成为内部类(inner class)。静态嵌套类, 就是用static修饰的成员嵌套类。...在任何“可以声明局部变量”的地方,都可以声明局部类。...是四种嵌套类中用的最少的。 局部类不能有访问控制符(private,public,protected修饰),可以是抽象的,也可以定义为final。...outerClass=new OuterLocalInnerClass(); outerClass.innerMethod(); } lis 年龄:18 高三1班的老师是:王莉 推荐 java
今天我们分析内部类和静态内部类的区别,首先我们写一个InnerClassTest类,其中有一个内部类InnerClass和静态内部类StaticInnerClass。...倒数5行,StaticInnerClass的innerMethod()报错,显示d() Q:什么是内部类?有什么作用?静态内部类和非静态内部类的区别? 总结 内部类就是定义在另外一个类里面的类。...它隐藏在外部类中,封装性更强,不允许除外部类外的其他类访问它;但它可直接访问外部类的成员。...静态内部类和非静态内部类的区别有: 静态内部类是指被声明为static的内部类,可不依赖外部类实例化;而非静态内部类需要通过生成外部类来间接生成。...静态内部类只能访问外部类的静态成员变量和静态方法,而非静态内部类由于持有对外部类的引用,可以访问外部类的所用成员 参考: 从一道面试题开始说起 枚举、动态代理的原理 java内部类有什么好处?
参考链接: Java嵌套静态类 嵌套类 Java允许在一个类定义另一个类,称为嵌套类 (Nested Classes),类似下面的形式 class OuterClass { ... ...),非静态的称为内部类(Inner Classes) 一个嵌套类是包含它的外部类的一个成员,内部类能够访问外部类的其他成员,而静态嵌套类没有访问外部类的权限 作为外部类的成员,嵌套类能被声明为private..., public, protected或者包内访问的访问权限。 ...静态嵌套类 静态嵌套类与静态类里面的方法类似,一个静态嵌套类不能直接调用外部类里面的实例变量或者方法,它只能通过对象引用访问他们。 ...Java官方文档的解释: Note: A static nested class interacts with the instance members of its outer class (and
嵌套类与内部类在java中使用的很广泛,为了避免难以理解,这里用了几个小例子,说明它的用法。 ...嵌套类与内部类的结构如下图 静态嵌套类 静态嵌套类,是一种在类之外声明的嵌套类,由于是静态的,所以不经过初始化,就可以通过类名,直接调用。... 成员内部类,即该类作为另一个类的成员,因此只有引用另一个类,才能创建这个类。... 局部类的声明之作用与某个代码块内,因此如果某个声明的类仅仅被一段程序所使用,其他地方再也用不到,就可以用这种实现方式。...; 18 } 19 } 参考资料:《JAVA 7程序设计》
,那么这个类就叫做内部类,而内部类所在的类叫做外部类。...-类体中的内容:成员变量、成员方法、构造方法、静态成员、构造块和静态代码块、内部类....语法格式: 基本作用: -当一个类存在的价值仅仅是为某一个类单独服务时,就可以将这个类定义为所服务类的内部类,此时内部类可以直接访问外部.类的私有成员而不再需要提供公有的get和set方法。...基本分类: 普通内部类 - 直接将一个类的定义放到另外一个类的类体中。 静态内部类 - 使用static关键字修饰的内部类。 ------------ 只有内部类才可以使用static关键字修饰。...局部内部类 - 直接将一个类的定义放到方法体的内部。 ------------- 只在方法体内有效。 匿名内部类 - 主要指没有名字的内部类。
abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。...子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。...内部类 内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。...成员内部类 静态内部类 局部内部类 匿名内部类 示例代码: public class Outer { private int id; public void out() {...("这是内部类的方法"); } } //获得外部类的私有属性~ public void getID(){ System.out.println(id
Java中的内部类是在Jdk1.1版本之后增加的,内部类是Java语言中一个比较重要的概念,如果能把内部类运用好,那么会明显增强Java程序的灵活性。...简单的说就是在一个类的内部又定义了一个类,这个类就称之为内部类(Inner Class)。...看一个简单的例子: 内部类有以下几个主要的特点: 第一,内部类可以访问其所在类的属性(包括所在类的私有属性),内部类创建自身对象需要先创建其所在类的对象,看一个例子: 第二,可以定义内部接口,且可以定义另外一个内部类实现这个内部接口...看一个例子: static内部类是内部类中一个比较特殊的情况,Java文档中是这样描述static内部类的:一旦内部类使用static修饰,那么此时这个内部类就升级为顶级类。...也就是说,除了写在一个类的内部以外,static内部类具备所有外部类的特性,看一个例子: 通过这个例子我们发现,static内部类不仅可以在内部定义static元素,而且在构建对象的时候也可以一次完成
java内部类作用 为什么在Java中需要内部类?总结一下主要有以下四点: 1.每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。...3.方便编写事件驱动程序 4.方便编写线程代码 个人觉得第一点是最重要的原因之一,内部类的存在使得Java的多继承机制变得更加完善。...◆Java内部类 一、 含义 ---- 在Java编程语言里,程序是由类(class)构建而成的。在一个类的内部也可以声明类,我们把这样的类叫做内部类。 ?...四、 分类 ---- Java内部类可分为成员内部类、局部内部类、匿名内部类、静态内部类。...运行结果: outer:lalala 3) 匿名内部类 可以把匿名内部类想象成是没有类名的局部内部类,匿名内部类有以下特点: 1、匿名内部类不能有构造器,匿名内部类没有类名,肯定无法声明构造器。
参考链接: Java静态嵌套类 一. 什么是嵌套类及内部类? ...可以在一个类的内部定义另一个类, 这种类称为嵌套类(nested classes), 它有两种类型: 静态嵌套类和非静态嵌套类。 ...静态嵌套类使用很少, 最重要的是非静态嵌套类, 也即是被称作为内部类(inner). 嵌套类从JDK1.1开始引入. ...其中inner类又可分为三种: (1) 在一个类(外部类)中直接定义的内部类; (2) 在一个方法(外部类的方法)中定义的内部类; (3) 匿名内部类. ...import java.io.File; /** * 系统常量 */ public class Constants { // 自定义配置文件 public static final
但如果这个类是内部类,是可以这样写的:public static class A 静态内部类的作用:只是为了降低包的深度,方便类的使用,实现高内聚。...静态内部类适用于不依赖于外部类,不用使用外在类的非静态属性和方法,只是为了方便管理类结构而定义。在创建静态内部类的时候,不需要外部类对象的引用。...3、使用场景 内部类和静态内部类的区别 静态类 只能在内部类中定义静态类 静态内部类不依赖于外部类,即使外部类没有创建对象,静态类也可以new对象 静态类的方法可以是静态的方法也可以是非静态的方法,静态的方法可以在外层通过静态类调用...可以实现多重继承 可以避免修改接口而实现同一个类中***两种同名方法***的调用 java的设计旨在简单,所以初学者十分好入门并且上手工作,但作为一门火了这么多年的语言,肯定还是有些硬骨头的,而这些,...我们会发现java的设计者在设计内部类的时候用心良苦,学会使用内部类,是掌握java高级编程的一部分,它可以让你更优雅的设计你的程序结构。
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变量 3 private int x=1; 4 //定义外部类函数 5...public void methodOut(){ 6 System.out.println("外部类"); 7 } 8 //定义内部类 9 class InterClass...{ 10 //定义内部类的变量 11 private int x=2; 12 //定义内部类的函数 13 public void methodInter...void main(String[] args) { 28 //创建外部类对象,并调用外部类方法 29 OutClass out=new OutClass(); 30...(); 33 //调用内部类方法 34 inter.methodInter(); 35 } 36 } 运行结果: 外部类 函数中的x=:3 内部类的x=:2 外部类的
1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: ? 这样看起来,类Draw像是类Circle的一个成员,Circle称为外部类。...这一点和外部类有一点不一样,外部类只能被public和包访问两种权限修饰。我个人是这么理解的,由于成员内部类看起来像是外部类的一个成员,所以可以像类的成员一样拥有多种权限修饰。 ...2.局部内部类 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。 ?...代码中需要给按钮设置监听器对象,使用匿名内部类能够在实现父类或者接口中的方法情况下同时产生一个相应的对象,但是前提是这个父类或者接口必须先存在才能这样使用。...4.静态内部类 静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。
如果一个事物的内部包含另一个事物,那么这就是一个类的内部包含另一个类; 比如可以比作:"身体和心脏" "汽车和发动机"; 内部类又可以分为: 1、成员内部类 2、局部内部类(匿名内部类) 成员内部类:...成员内部类的定义格式: 修饰符 class 外部类名称{ 修饰符 class 内部类名称{ } } 注意:内用外可以随意使用,外用内,需要内部类的对象; 如下图: 如何使用成员内部类...) / private 3、局部内部类:什么都不能写 匿名内部类: 如果接口的实现类(父类的子类)只需要使用一次, 那么这种情况下就可以省略该类的定义,用匿名内部类; 格式: 接口名称 对象名=new...; 注意事项: 1、匿名内部类,在创建对象的时候,只能使用唯一的一次; 如果希望多次创建对象,而且类的内容一样的话,匿名就需要使用单独定义的实现类了; 2、匿名对象,在调用方法的时候,只能调用唯一的一次...; 如果希望同一个对象,调用多次的方法,那么必须给对象起个名字; 3、匿名内部类是省略了"实现类/子类名称",但是匿名对象是省略了"对象名称"; 匿名内部类和匿名对象不是一回事; 局部内部类中
在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。...我们知道类的五大成员:属性、方法、构造器、代码块、内部类。内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。...2.局部内部类 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。...(4)局部内部类访问外部类的成员属性或者方法时,直接访问; (5)外部类访问局部内部类的成员属性或者方法时,通过先创建对象,再访问,且必须要在作用域内。...name:" + inner.name); } } 3.匿名内部类 Java 中可以实现一个类中包含另外一个类,且不需要提供任何的类名直接实例化。
类中还有类就是内部类 一.成员内部类 public class Text { class innerClass{//成员内部类 int id = 88;//定义属性 public...//外部类.new 创建内部类 class1.inf(); } } 成员内部类是最普通的内部类,它的定义为位于另一个类的内部。...二.局部内部类 该类访问仅限于方法内和该作用域内 public class Text2 { int qq = 1397995240; int tel = 151888; public outClass...(Text2.this.tel);//外部类.this.成员变量 } } new innerClass2("do");//外部类要访问内部类成员 必须先创建这个类的对象...//然后通过这个类来访问 //若需要返回值, 由于外部没有这个类 可以创建一个接口 实现向上转型 //则上面的 new innerClass2("do");可以去掉 //返回值由void
2、 认识内部类 内部类,顾名思义,就是一个定义在已有的Java类内部的类,就像下面这样: public class Outer { //外部类 class Inner{ //内部类...没有然后了,就先这样简洁直观的认识它吧,相信我,内部类本来就很简单,别搞得太复杂了。 3 、内部类对象创建和基本使用 内部类既然是个Java类,自然是可以创建对象的。...下面分别介绍—— 普通内部类 普通情况,或者说最典型的情况,就是一个Java类嵌在另一个Java类中,形成了内、外的格局;外部类就是我们普通的类,内部类也是普通的类,特性都满足Java类的特性,...是的,类也可以是静态的,不过必须是内部类才行。静态内部类,也叫嵌套类,Java中标准类库中就有很多现成的应用,比如整形的包装器中用静态内部类来缓存[-128,127]之间的整数。...追踪Java标准类库的一些源码你会发现,平时常用的容器类、整形包装器等都有大量使用内部类的场景;而平时引入的第三方类库、框架中的源码也有很多使用内部类的。
Java内部类 内部类简介# ---- Java 一个类中可以嵌套另外一个类,语法格式如下: class OuterClass { // 外部类 // ......class NestedClass { // 嵌套类,或称为内部类 // ... } } 嵌套类有如下几种类型: 成员内部类# ---- 最简单的一种内部类,形式如下,跟其他变量一样...侧面说明成员内部类依赖于外部类的优先创建,不然会初始化失败 局部内部类# ---- 定义在一个方法或者一个作用域里面的类,局部内部类的访问仅限于方法内或者该作用域内 class MyClass{...本部分参考JAVA匿名内部类(Anonymous Classes) 静态内部类# ---- 静态内部类是不需要依赖于外部类的,并且它不能使用外部类的非static成员变量或者方法,这个和普通静态方法不能访问非静态方法或变量的原理一样...# ---- 为什么在 Java 中需要内部类?
领取专属 10元无门槛券
手把手带您无忧上云