内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态static的,也可用public,default,protected和private修饰。
1、成员内部类:成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。 要注意的是,成员内部类不能含有static的变量和方法。因为成员内部类需要先创建了外部类,才能创建它自己的。
package org.lazyzhong.test; public class People { public Man getMan(){ return new Man(); } public class Man{ public void say(){ System.out.println("I am a man..."); } } }
package org.lazyzhong.test; public class MyTest { public static void main(String[] args) { People p=new People(); People.Man man=p.getMan(); man.say(); } }
2、局部内部类:局部内部类,是指内部类定义在方法和作用域内。
2.1定义在方法内:
package org.lazyzhong.test; public class People { public void doWork(){ class Man{ public void doJob(){ System.out.println("man is doing job"); } } new Man().doJob(); } }
package org.lazyzhong.test; public class MyTest { public static void main(String[] args) { People p=new People(); p.doWork(); } }
2.2定义在作用域内:
package org.lazyzhong.test; public class People { public void doWork(boolean flag){ if(flag){ class Man{ public void say(){ System.out.println("I am a man..."); } } new Man().say(); } else{ class Girl{ public void say(){ System.out.println("I am a girl"); } } new Girl().say(); } } }
package org.lazyzhong.test; public class MyTest { public static void main(String[] args) { People p=new People(); p.doWork(false); } }
3、嵌套内部类:嵌套内部类,就是修饰为static的内部类。声明为static的内部类,不需要内部类对象和外部类对象之间的联系,就是说我们可以直接引用outer.inner,即不需要创建外部类,也不需要创建内部类。
package org.lazyzhong.test; public class People { static class Girl{ public static void say(){ System.out.println("I am a girl"); } } }
4、匿名内部类:
package org.lazyzhong.test; public class People { public Girl getGirl( final String name){ return new Girl(){ private String gname=name; @Override public String getName() { return gname; } }; } }
new 匿名类,这个类是要先定义的。当所在的方法的形参需要被内部类里面使用时,该形参必须为final。
相关推荐
JAVA基础——Java内部类.ppt
《精通JAVA——JDK》是一本深度探讨Java编程语言及其开发工具集JDK的专业教程,旨在帮助Java开发者提升技能,实现技术的精进。作为Java的基石,JDK(Java Development Kit)是学习和开发Java应用程序必不可少的工具...
IBM java培训内部资料——Java 常用类讲解.pptx
IBMjava培训内部资料——Java常用类讲解.pptx
Java之——类热加载 在Java编程中,类的加载是程序运行的重要环节。传统的Java应用程序在启动时,由JVM(Java虚拟机)通过类加载器将类加载到内存中,一旦加载完成,除非程序退出,否则这些类通常不会被重新加载。...
Java内部类之局部内部类 Java内部类是一种特殊的类,它可以嵌套在其他类中,今天我们主要介绍Java局部内部类的相关知识,了解局部内部类的定义、特性和使用场景。 什么是局部内部类? 局部内部类是定义在代码块、...
### Java——知识点归纳总结 #### 概述 Java是一种简单且强大的面向对象编程语言,以其跨平台特性闻名,即“一次编写,到处运行”。Java语言的设计原则包括分布性、安全性、健壮性和多线程性,使其成为互联网时代...
在Java中,除了接口之外,还有一个重要的概念——内部类。内部类是在另一个类的内部定义的类,它可以访问外部类的成员变量和方法,即使这些成员是私有的。 内部类分为几种类型:成员内部类、局部内部类、匿名内部类...
浅析Java内部类——成员内部类 Java内部类是Java语言中的一种特殊的类结构,它可以定义在类内部,而不是独立的类。今天,我们将主要介绍Java成员内部类的相关知识。 什么是内部类 内部类是定义在类内部的类,它...
"Java内部类——匿名内部类" Java内部类是一种特殊的类,它可以定义在另一个类的内部,包括成员内部类、静态内部类、局部内部类和匿名内部类等。今天,我们主要来讲解Java中的匿名内部类。 匿名内部类是一种特殊的...
7. **JVM内部原理**:如内存模型、垃圾收集机制、类加载器等,这些对于优化Java程序性能至关重要。 8. **Java编程规范**:良好的编程习惯和规范,有助于提高代码的可读性和可维护性。 通过这些内容的学习,学生...
内部类(inner class)分为成员内部类、局部内部类、匿名内部类等,它们可以提供更复杂的封装和抽象。 Java中的异常处理通过try-catch-finally语句块实现,允许程序在发生错误时优雅地处理和恢复。Java的常用包,如...
Java 内部类是 Java 语言的一个特性,它允许在一个类的定义内部定义另一个类。这种设计模式在处理一些特定情况时非常有用,比如当一个类的实例需要访问另一个类的私有成员,或者需要创建临时性的、特定场景的类实现...
Java SE中的静态内部类是一种特殊的内部类,它与非静态内部类(也称为成员内部类)有着显著的区别。静态内部类并不需要外部类的实例来创建它的对象,而是可以直接通过类名进行实例化,就像普通的类一样。在给定的...
《Java语言——内部类详解》 内部类是Java语言中一个独特且强大的特性,它允许我们在一个类的内部定义另一个类。内部类可以提供更复杂的封装,使得代码结构更加清晰,同时还能访问外部类的私有成员,提供了更高级别...
Java静态内部类详解 Java中的内部类是指在一个类中定义的另一个类,它可以帮助我们更好地组织代码,使代码更加简洁和易于维护。在Java中,内部类可以分为静态内部类和非静态内部类两种。本文将主要介绍Java静态内部...
- 类与对象:Java中的基本构建块,用于封装数据和行为。 - 继承:允许创建一个类(子类)继承另一个类(父类)的属性和方法,实现代码复用。 - 多态:不同对象对同一消息的不同响应,体现为重写和重载。 - 接口...