内部类

博客介绍了内部类,即在类中定义的另一个类。其优点是方便访问外部类私有属性,缺点是破坏类基本结构。还阐述了使用static定义内部类、在方法中定义内部类的规则,以及内部类可被外部类和其他类访问的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内部类:在类中定义的另一个类。

优点:唯一好处就是方便访问外部类中的私有属性。
缺点:类应该由属性和方法组成,而内部类破化了类的基本结构。

public class InnerClassDemo01 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Outer().fun();
	}
}
class Outer{
	private String name="外部类Outer";
	class Inner{
		public void print() {
			System.out.println("外部类私有的属性:"+name);
		}
	}
	public void fun() {
		new Inner().print();
	}
}
//结果:
//外部类私有的属性:外部类Outer

1、使用static定义内部类

public class InnerClassDemo02 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Outer.Inner().InnnerPrint();
	}
}
class Outer{
	private static String info="外部类属性";
	static class Inner{
		public void InnnerPrint() {
			System.out.println(info);
		}
	}
}

static修饰的内部类变为外部类,但static修饰的内部类只能访问static修饰的外部类属性。

2、在方法中定义内部类

public class OuterClassDemo03 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Outer().print("方法中的参数");
	}
}
class Outer{
	private String name="外部类的属性";
	public void print(final String info) {
		class Inner{
			public void InnerPrint() {
				System.out.println(name);
				System.out.println(info);
			}
		}
		new Inner().InnerPrint();
	}
}
//结果:
//外部类的属性
//方法中的参数

只有在方法的参数前面加上final修饰,方法内部类才能直接访问内部类外面的方法的参数。

3、在外部访问内部类

public class InnerClassDemo04 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Outer out=new Outer();
		//外部访问内部类的格式
		//外部类.内部类 内部类对象=外部类实例.new 内部类();
		Outer.Inner in=out.new Inner();
		in.print();
	}
}
class Outer{
	private String info="外部类";
	class Inner{
		public void print() {
			System.out.print(info);
		}
	}
}
//结果:
//外部类

一个内部类除了能被外部类访问,还能被其他类访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值