1.Java 中内部类详解分析(一)

本文深入解析Java内部类的概念、特点及使用方法,包括内部类的定义、访问控制、静态内部类的应用,以及如何从外部访问内部类等。通过具体示例帮助读者掌握内部类的使用技巧。

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

Java 中内部类详细分析:

    1).什么叫内部类:
.在一个类中还存在另外一个类,则称为内部类。
 .在内部也可以定义另外一个类。如果在类Outer的内部再定义一个类inner,此时类inner就称为内部类,而类Outer则成为外部类。
 .内部类可声明成public或private。
 .当内部类声明成public或private时,对其访问限制与成员变量和成员方法完全相同。

 

     2).内部类的存在的特点:

.缺点:正常的一个类操作时,在类中最好只定义属性或方法,如果定义一个类的话,则肯定破坏了程序的一个结构。
.优点:可以方便的访问外部类中的私有属性

 

      3).使用static声明内部类
     .如果一个内部类使用static关键字声明,则此内部类就称为外部类,可以直接通过外部类.内部进行访问.

 

    4).在外部访问内部类:

      .一个内部类除了可以通过外部类访问,也可以直接在其他类中调用,但是调用的格式:
.外部类.内部类  内部类对象 = 外部类实例.new 内部类();

 

      5).在方法中定义内部类:

       .一个内部类可以在任意的位置上定义。

 

   

/**
 * 外部类
 * @author Administrator
 *
 */
public class Demo {
	// 外部类的成员变量
	
	/**
	 * 内部类
	 * @author Administrator
	 *
	 */
	class InteriorDemo{
		// 内部类的成员变量
		
	}
}
	
2).内部类的存在的特点:
	.缺点:正常的一个类操作时,在类中最好只定义属性或方法,如果定义一个类的话,则肯定破坏了程序的一个结构。
	.优点:可以方便的访问外部类中的私有属性
	
	
3).使用static声明内部类
	.如果一个内部类使用static关键字声明,则此内部类就称为外部类,可以直接通过外部类.内部进行访问.
	/**
 * 通过static访问内部类
 * @author Administrator
 *
 */
public class InnerClassDemo02 {
	public static void main(String[] args) {
		new Outer1.Inner1().info() ;
	}
}
class Outer1 { 
	private static String info = "Hello Word." ; 
	static class Inner1{
		
		public void info(){
			System.out.println(info);
		}
	}
}

	
4).在外部访问内部类:
	.一个内部类除了可以通过外部类访问,也可以直接在其他类中调用,但是调用的格式:
	.外部类.内部类  内部类对象 = 外部类实例.new 内部类();
		
		
/**
 * 通过static访问内部类
 * @author Administrator
 *
 */
public class InnerClassDemo03 {
	public static void main(String[] args) { 
		/**
		 * 第一个种方式
		 */
		// 实例化外部类对象
		Outer2 out = new Outer2();	
		// 实例化内部类对象
		Outer2.Inner2 inn = out.new Inner2();
		// 调用内部类方法
		inn.info();
		
		
		/**
		 * 第二种方式
		 */
		//  .外部类.内部类  内部类对象 = 外部类实例.new 内部类();
		Outer2.Inner2 in = new Outer2().new Inner2();
		// 调用内部类方法
		in.info();
	}
}

/**
 * 定义外部类
 * @author Administrator
 *
 */
class Outer2 { 
	// 外部类属性
	private  String info = "Hello Word." ; 
	/**
	 * 定义内部类
	 * @author Administrator
	 *
	 */
    class Inner2{
    	/**
    	 * 内部类方法
    	 */
		public void info(){
			// 直接使用外部类属性
			System.out.println(info); 
		}
	}
}	
	

5).在方法中定义内部类:
	.一个内部类可以在任意的位置上定义。
	/**
 * 通过方法访问内部
 * @author Administrator
 *
 */
public class InnerClassDemo04 {
	public static void main(String[] args) { 
		 new Outer3().fun("通过方法实例化并且传入参数必须通过fainl 修饰");
	}
}

/**
 * 定义外部类
 * @author Administrator
 *
 */
class Outer3 { 
	// 外部类属性
	private  String info = "Hello Word." ; 
	
	public void fun(final String value){
		/**
		 * 定义内部类
		 * @author Administrator
		 *
		 */
	    class Inner3{
	    	/**
	    	 * 内部类方法
	    	 */
			public void info(){
				// 直接使用外部类属性
				System.out.println("类中的属性参数:" + info); 
				// 方法的参数
				System.out.println("方法中的参数:" + value);
				
			}
		}; 
		// 方法中实例化内部类
		new Inner3().info();
	}
}

 

 

 

 

总结:
  .内部类在实际的开发中非常有用处,而且是经常使用的,所以一定要熟悉其语法及其有点。
  .在Java系统中也会导出看见使用static声明内部类的情况,一定要记住,使用static声明的内部类是外部类,操作的时候要使用“外部类.内部类” 的形式访问。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值