`
wujiandong
  • 浏览: 43768 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java基础之内部类

    博客分类:
  • Java
阅读更多
内部类:定义在其他类内部的类就被称作内部类,也叫嵌套类,包含内部类的类被称作外部类,也叫宿主类

内部类的作用:
可以更好的进行封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类该类,内部类可以直接访问外部类的私有数据,因为内部类被当做其外部类成员,同一个类的成员之间可以互相访问.但外部类不能访问内部类的实现细节,例如内部类的属性

内部类类型分类:

1:非静态内部类
package InnerClass;

/**
 * 成员内部类
 * @author wjd
 *
 */
public class MenberInnerClass 
{
	public static void main(String[] args)
	{
		MenberInner.Inner inner = new MenberInner().new Inner();
	}
}

class MenberInner
{
	private int a =4;
	public class Inner
	{
		private int a = 5;
		
		public void doSomething()
		{
			//访问外部类的成员变量
			System.out.println(MenberInner.this.a);
		}
	}
	
	public void method()
	{
		Inner inner = this.new Inner();
	}
}


2:静态内部类:
package InnerClass;

/**
 * 静态内部类:只能访问外部类的静态成员与静态方法
 * @author wjd
 */
public class StaticInnerClass 
{
	public static void main(String[] args)
	{
		StaticInner.Inner inner = new StaticInner.Inner();
		inner.test();
	}
}

class StaticInner
{
	private static int a = 4;
	
	public static class Inner
	{
		private static int a = 5;
		public void test()
		{
			System.out.print(StaticInner.a);
		}
	}
}


3:局部内部类:
package InnerClass;

/**
 * 局部内部类:定义在方法内部的类,用的比较少
 * 只能访问方法中声明的final类型的变量
 */
public class LocalInnerClass 
{
	public static void main(String[] args)
	{
		new LocalInner().doSomething();
	}
}

class LocalInner
{
	public void doSomething()
	{
		final int a = 4;
		
		class Inner
		{
			public void test()
			{
				System.out.println(a);
			}
		}
		
		new Inner().test();
	}
}


4:匿名内部类:
package InnerClass;

import java.util.Date;

/**
 * 匿名内部类,用的比较多
 * 会隐式地继承一个父类或实现一个接口[最重要的特点]
 */
public class AnonymousInnerClass 
{
	public String get(Date date)
	{
		return date.toLocaleString();
	}
	
	public static void main(String[] args)
	{
		AnonymousInnerClass test = new AnonymousInnerClass();
		//String str = test.get(new Date());
		//System.out.println(str);
		
		//这里传的并不是Date类的对象,而是一个继承了date类的一个子类的对象,只是这个类并没有重写date类的任何方法
		String str = test.get(new Date(){
			public String toLocaleString()
			{
				return "HelloWorld";
			}
		});
		System.out.println(str);
	}
}
0
0
分享到:
评论

相关推荐

    java基础第七章内部类与异常类.doc

    Java 基础第七章内部类与异常类 Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为...

    java基础java内部类

    Java 内部类是 Java 语言的一个重要特性,它允许在一个类的内部定义另一个类。内部类的概念在 Java 中有着广泛的应用,特别是在处理复杂的继承问题和实现特定设计模式时。以下将详细介绍 Java 内部类的基本概念、...

    Java__接口、内部类和Java_API基础

    "Java接口、内部类和Java_API基础" Java接口是Java语言中的一个抽象概念,它定义了一组方法的集合,但不提供实现。Java接口的主要特点是它不能被实例化,必须由其他类来实现。接口的声明格式为: ``` public ...

    java 集合和内部类资料

    Java集合框架是Java编程...总之,这个资料包涵盖了Java集合框架和内部类的基础知识,对于想要深入理解Java编程的开发者来说,是一份宝贵的学习资源。通过学习,你可以提升在处理数据集合和实现复杂设计模式上的能力。

    Java 基础之内部类详解及实例

    Java 内部类是 Java 编程语言中一个独特的特性,允许在一个类的定义内部定义另一个类。这种设计模式在某些场景下非常有用,比如实现匿名类、回调函数或者封装特定逻辑。以下是对内部类的详细解释和实例分析。 1. **...

    Java基础内部类.xmind文件

    Java基础内部类.xmind文件

    Java 接口 内部类

    Java接口和内部类是Java语言中两种重要的抽象机制,它们在软件设计中起着关键作用。接口主要用于定义对象之间的交互规范,而内部类则提供了一种封装和隐藏类的机制,使得类的设计更加灵活。 首先,接口是一个合约,...

    JAVA基础——Java内部类.ppt

    JAVA基础——Java内部类.ppt

    java 局部内部类的使用规范

    java 局部内部类的使用规范 java 局部内部类的使用规范

    java基础 包含:Java入门 基础语法 JAVA 类和对象 JAVA 高级类 等等

    进入Java的高级主题,你会接触到诸如抽象类、接口、内部类、匿名类、枚举、注解、泛型、集合框架(如ArrayList、LinkedList、HashMap等)以及反射机制等。这些特性增强了代码的灵活性和可扩展性,使Java能够适应各种...

    java基础四种匿名内部类

    掌握java四中匿名内部类

    java和kotlin的内部类静态嵌套类

    总的来说,理解Java和Kotlin的内部类和静态嵌套类是成为一名合格的移动开发者的基础。通过学习和实践,你可以更好地组织代码,提高代码质量,同时降低维护成本。在提供的资源中,"java内部类嵌套类"和"kotlin内部类...

    Java内部类基础笔记

    本篇笔记将详细介绍Java中的四种内部类:普通内部类、静态内部类、方法内部类以及匿名内部类。 ### A. 普通内部类 普通内部类(也称为成员内部类)是定义在外部类的成员位置,如同字段一样。它们可以直接访问外部...

    java基础第七章-内部类与异常类.doc

    Java 基础第七章 -内部类与异常类 本章节主要讲解 Java 的内部类和异常类的概念、特点、使用方法和注意事项。 内部类 ------ 内部类是 Java 支持的一种特殊类,定义在另一个类的内部。内部类和外嵌类之间存在关系...

    Java基础权限控制与final,内部类

    了解了这些概念,让我们回到Java基础权限控制与final,内部类的主题。Java中,final和权限控制是面向对象编程中的核心概念。final关键字用于限制类、方法或变量的可变性,而权限控制则决定了类成员的可见性和可用...

    JAVA_12内部类

    Java内部类是Java编程语言中的一个独特特性,它允许在一个类的定义内部定义另一个类。这种设计模式在处理复杂的对象关系、实现匿名类以及提供更好的封装性时非常有用。在这个"JAVA_12内部类"的学习资料中,我们将会...

    java语言基础:内部类2.pdf

    java语言基础:内部类2.pdf

    Java基础课件 全套pdf版 java培训

    尚硅谷_佟刚_Java基础_Java类设计.pdf): - 类与对象:理解面向对象编程的核心概念。 - 属性与方法:学习如何定义类的属性和行为。 - 构造器:了解构造函数的用途和使用场景。 - 访问修饰符:掌握public, ...

    接口、内部类和Java API基础

    接口(interface)是一组常量和抽象方法的集合。接口是一种引用数据类型。 抽象方法的具体实现由实现接口的类完成,实现接口的类必须覆盖接口中的所有抽象方法。

Global site tag (gtag.js) - Google Analytics