栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java内部类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java内部类

内部类
  • 一.内部类的特点
    • 1.内部类应用
    • 2. 实例
  • 二.匿名内部类
    • 1.匿名内部类的特点
    • 2.实例

一.内部类的特点 1.内部类应用

所谓内部类(Inner Class),顾名思义,就是将一个类定义在另一个类的内部。
内部的类称之为内部类

内部类的主要特点:
·内部类可以很好的实现隐藏,可以使用protected private修饰符
·内部类可以直接访问外部类的所有成员,包括私有的成员
·外部类不能直接访问内部类的成员,必须首先建立内部类的对象才能访问

成员内部类及应用
·成员内部类属于外部类的实例成员,成员内部类可以有public private default
protected权限修饰符。在成员内部类中访问外部类的成员方法和属性,要使用
“外部类名.this.成员方法”和“外部类名.this.成员属性”的形式
·创建成员内部类的实例使用“外部类名.内部类名 实例 = 外部类实例名.new 内部类
构造方法(参数)”的形式
成员内部类有以下限制:
·成员内部类不能与外部类重名
·不能在成员内部类中定义static属性,方法和类(static final形式的常量定义除外)
因为一个成员内部类实例必然与一个外部类实例关联,static成员完全可以移到其外部类中去

2. 实例
class Otuer
{
	int data;
	public void initOtuerData(){
		System.out.println("外部类的data="+data);
	}
	class Inner
	{
		int data;
		public void initInnerData(){
			
			System.out.println("内部类的data="+data); 
			Otuer.this.initOtuerData();
			//在成员内部类中访问外部类的成员方法和属性,要使用
		 //“外部类名.this.成员方法”和“外部类名.this.成员属性”的形式

		}
	}
}
//创建成员内部类的实例使用“外部类名.内部类名 实例 = 外部类实例名.new 内部类构造方法(参数)”的形式

public class Test {
		public static void main(String[] args) {
				Otuer dw=new Otuer();
				dw.data=1001;
				Otuer.Inner text=dw.new Inner();
				text.initInnerData();
				
				
		}
}

二.匿名内部类 1.匿名内部类的特点

·匿名内部类是没有名称的内部类,没办法引用它们。必须在创建时,作为new语句
的一部分来声明并创建它们的实例
·匿名内部类必须继承一个类(抽象的,非抽象的都可以)或者实现一个接口,
所有父类(或者父接口)是抽象类,则匿名内部类必须实现其所有抽象方法
语法:实例
new interface/superclass(){类体}
这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现
一个给定的接口,并同时创建该匿名类的一个新实例。

2.实例
abstract class Demo1
{
	abstract void printInfo ();
}
interface Demo2
{
	abstract void IntPrint ();
}

public class Test {
		public static void main(String[] args) {
			new Demo1(){

				void printInfo() {
					// TODO Auto-generated method stub
					System.out.println("这不是Demo1,而是匿名内部类的方法");
				}
				
			}.printInfo();	
			new Demo2(){

				public void IntPrint() {
					// TODO Auto-generated method stub
					System.out.println("这不是接口的实例,而是匿名内部类的方法");
				}
				
			}.IntPrint();
		}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591455.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号