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

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声明的内部类是外部类,操作的时候要使用“外部类.内部类” 的形式访问。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java.util包是Java一个非常重要的包,它包含了一些在Java应用程序经常使用的,比如集合、日期与时间处理、随机数生成、正则表达式等。下面是java.util一些常用的使用方法详解。 1. 集合 Java集合框架定义了一组接口用于表示集合,以及一些实现这些接口的。这些包括ArrayList,LinkedList,HashSet,TreeSet,HashMap,TreeMap等。它们提供了各种方法来添加、删除、查找和遍历集合元素。 以ArrayList为例,以下是一些常用方法: ``` // 创建ArrayList对象 ArrayList<String> list = new ArrayList<String>(); // 添加元素 list.add("apple"); list.add("banana"); list.add("orange"); // 获取元素 String first = list.get(0); String last = list.get(list.size() - 1); // 遍历元素 for (String fruit : list) { System.out.println(fruit); } // 删除元素 list.remove("apple"); ``` 2. 日期与时间处理 Java提供了多种处理日期和时间的,包括Date,Calendar,SimpleDateFormat等。其,Date表示日期和时间,Calendar是一个抽象,用于操作日期和时间,SimpleDateFormat用于格式化日期和时间。 以下是一个使用SimpleDateFormat将日期格式化为指定字符串的示例: ``` Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = formatter.format(date); System.out.println(formattedDate); ``` 3. 随机数生成 Java提供了Random用于生成随机数。它包含了多个方法,可以生成不同型的随机数,如整数、浮点数、布尔值等。 以下是一个生成1到6之间的随机整数的示例: ``` Random rand = new Random(); int num = rand.nextInt(6) + 1; System.out.println(num); ``` 4. 正则表达式 Java提供了Pattern和Matcher用于处理正则表达式。Pattern表示正则表达式,Matcher用于在给定输入字符串匹配该正则表达式。 以下是一个使用正则表达式匹配邮政编码的示例: ``` String zipCodePattern = "\\d{5}"; Pattern pattern = Pattern.compile(zipCodePattern); String input = "12345"; Matcher matcher = pattern.matcher(input); if (matcher.matches()) { System.out.println("Valid zip code"); } else { System.out.println("Invalid zip code"); } ``` 以上是java.util包一些常用的使用方法详解,这些Java应用程序经常用到,掌握它们的使用方法对于Java开发者来说非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值