Java 内部类

内部类的基本定义

在类内部可以定义成员变量与方法,而且在类内部也可以定义另一个类。

如果在类outer的内部在定义一个类Inner,此时类Inner就称为内部类,而类Out则称为外部类。

内部类可以声明public或者private。

当内部类声明称为Public 或private时,对其访问的限制与成员变量和成员关系相同。

内部类的声明格式:

class Outer{//定义外部类
	 private String info = "你好Java";//定义外部类属性--私有
	 class Inner {//定义内部类
		 public void print(){//定义内部类方法
			 System.out.println(info);//直接访问外部类私有属性
		 }
	 };
	 public void fun(){//定义方法
		 new Inner().print();//通过内部类对象调用方法
	 }
}
public class ClassInnerClassDemo02{
	 public static void main(String[] args){
		 new Outer().fun();//调用外部类的fun()方法	
		 }
}

使用static可以声明属性或方法,而使用static也可以声明内部类,

用static声明的内部类变成了外部类,但是sattic声明的内部类不能访问非Static的外部类属性

class Outer03{
	private static String info = "你好 Java";
	static class Inner{//用Static声明内部类为外部类
		public void print(){
			System.out.println(info);
		}
	};
}
public class InnerClassDemo03{
	public static void main(String[] args){
		new Outer03.Inner().print();//访问内部类
	}
}

/* 在方法中定义内部类
在方法中定义的内部类不能直接访问方法中的参数,如果方法中的参数一套想被内部类访问,在参数前必须加上final关键字 */
//在方法中定义内部类

class Outer05{//定义外部类
	private String info = "你好Java";
	public void fun(final int temp){  //参数要被访问必须用final声明
		class Inner{//在方法中定义内部类
			public void print(){
				System.out.println("类中的属性:" + info);
				System.out.println("方法中的参数:" + temp);
			}
		};
		new Inner().print();
	}
}
public class InnerClassDemo05{
	public static void main(String[] args){
		new Outer05().fun(30);//调用外部类方法
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值