`
lazyzhong
  • 浏览: 7533 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java——内部类

    博客分类:
  • java
阅读更多

内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态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基础——Java内部类.ppt

    精通JAVA——JDK(高清PDF文件)

    《精通JAVA——JDK》是一本深度探讨Java编程语言及其开发工具集JDK的专业教程,旨在帮助Java开发者提升技能,实现技术的精进。作为Java的基石,JDK(Java Development Kit)是学习和开发Java应用程序必不可少的工具...

    IBM java培训内部资料——Java 常用类讲解.pptx

    IBM java培训内部资料——Java 常用类讲解.pptx

    IBMjava培训内部资料——Java常用类讲解.pptx

    IBMjava培训内部资料——Java常用类讲解.pptx

    Java之——类热加载

    Java之——类热加载 在Java编程中,类的加载是程序运行的重要环节。传统的Java应用程序在启动时,由JVM(Java虚拟机)通过类加载器将类加载到内存中,一旦加载完成,除非程序退出,否则这些类通常不会被重新加载。...

    详细分析Java内部类——局部内部类

    Java内部类之局部内部类 Java内部类是一种特殊的类,它可以嵌套在其他类中,今天我们主要介绍Java局部内部类的相关知识,了解局部内部类的定义、特性和使用场景。 什么是局部内部类? 局部内部类是定义在代码块、...

    java——知识点归纳总结

    ### Java——知识点归纳总结 #### 概述 Java是一种简单且强大的面向对象编程语言,以其跨平台特性闻名,即“一次编写,到处运行”。Java语言的设计原则包括分布性、安全性、健壮性和多线程性,使其成为互联网时代...

    Java接口和内部类教程

    在Java中,除了接口之外,还有一个重要的概念——内部类。内部类是在另一个类的内部定义的类,它可以访问外部类的成员变量和方法,即使这些成员是私有的。 内部类分为几种类型:成员内部类、局部内部类、匿名内部类...

    浅析Java内部类——成员内部类

    浅析Java内部类——成员内部类 Java内部类是Java语言中的一种特殊的类结构,它可以定义在类内部,而不是独立的类。今天,我们将主要介绍Java成员内部类的相关知识。 什么是内部类 内部类是定义在类内部的类,它...

    详解Java内部类——匿名内部类

    "Java内部类——匿名内部类" Java内部类是一种特殊的类,它可以定义在另一个类的内部,包括成员内部类、静态内部类、局部内部类和匿名内部类等。今天,我们主要来讲解Java中的匿名内部类。 匿名内部类是一种特殊的...

    北大的java——ppt课件.rar

    7. **JVM内部原理**:如内存模型、垃圾收集机制、类加载器等,这些对于优化Java程序性能至关重要。 8. **Java编程规范**:良好的编程习惯和规范,有助于提高代码的可读性和可维护性。 通过这些内容的学习,学生...

    java——让学员少走弯路

    内部类(inner class)分为成员内部类、局部内部类、匿名内部类等,它们可以提供更复杂的封装和抽象。 Java中的异常处理通过try-catch-finally语句块实现,允许程序在发生错误时优雅地处理和恢复。Java的常用包,如...

    java 几种内部类(基础)(csdn)————程序.pdf

    Java 内部类是 Java 语言的一个特性,它允许在一个类的定义内部定义另一个类。这种设计模式在处理一些特定情况时非常有用,比如当一个类的实例需要访问另一个类的私有成员,或者需要创建临时性的、特定场景的类实现...

    Java SE 静态内部类的使用(csdn)————程序.pdf

    Java SE中的静态内部类是一种特殊的内部类,它与非静态内部类(也称为成员内部类)有着显著的区别。静态内部类并不需要外部类的实例来创建它的对象,而是可以直接通过类名进行实例化,就像普通的类一样。在给定的...

    java语言--内部类总结

    《Java语言——内部类详解》 内部类是Java语言中一个独特且强大的特性,它允许我们在一个类的内部定义另一个类。内部类可以提供更复杂的封装,使得代码结构更加清晰,同时还能访问外部类的私有成员,提供了更高级别...

    浅谈Java内部类——静态内部类

    Java静态内部类详解 Java中的内部类是指在一个类中定义的另一个类,它可以帮助我们更好地组织代码,使代码更加简洁和易于维护。在Java中,内部类可以分为静态内部类和非静态内部类两种。本文将主要介绍Java静态内部...

    Thinking in Java——自己手写的代码

    - 类与对象:Java中的基本构建块,用于封装数据和行为。 - 继承:允许创建一个类(子类)继承另一个类(父类)的属性和方法,实现代码复用。 - 多态:不同对象对同一消息的不同响应,体现为重写和重载。 - 接口...

Global site tag (gtag.js) - Google Analytics