当前位置:首页 > 开发 > 编程语言 > Java > 正文

java编程思想 --内部类

发表于: 2015-03-24   作者:百合不是茶   来源:转载   浏览:
摘要: 内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅   1,内部类的创建  内部类是创建在类中的 package com.wj.InsideClass; /* * 内部类的创建 */ public class CreateInsideClass { public CreateInsideClass(

内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅

 

1,内部类的创建  内部类是创建在类中的

package com.wj.InsideClass;

/*
 * 内部类的创建
 */
public class CreateInsideClass {

	public CreateInsideClass() {

		// 在构造方法中处理内部类
		new Demo("百合不是茶", "1234").getAll();
	}

	public static void main(String[] args) {
		// 创建对象
		new CreateInsideClass();
	}

	// 内部类
	class Demo {
		String userName;
		String userpwd;

		// 构造方法处理
		public Demo(String userName, String userpwd) {
			this.userName = userName;
			this.userpwd = userpwd;
		}

		// 打印数据
		public void getAll() {
	System.out.println("用户名:" + userName + "<><><>用户密码" + userpwd);
		}
	}

}

 运行结果:

用户名:百合不是茶<><><>用户密码1234

 

分析:CreateInsideClass 类中创建内部类 ,CreateInsideClass 的构造方法中new内部类的对象,并调用内部类的方法

 

2,内部类与外部类的关系;

package com.wj.InsideClass;

/*
 * 内部类的创建
 */
public class CreateInsideClass {
	
    String str="java";//创建属性 内部类输出
	public CreateInsideClass() {

	// 在构造方法中处理内部类
new Demo("百合不是茶", "1234").getAll();
	}

	public static void main(String[] args) {
		// 创建对象
	new CreateInsideClass();
	//System.out.println(m);外部类不可以访问内部类的属性
	}

	// 内部类
	class Demo {
		String userName;
		String userpwd;
		String m="android";//外部类输出

		// 构造方法处理
public Demo(String userName, String userpwd) {
	this.userName = userName;
	this.userpwd = userpwd;
	System.out.println(str);//内部类可以访问外部类的属性
		}

		// 打印数据
	public void getAll() {
	System.out.println("用户名:" + userName + "<><><>用户密码" + userpwd);
		}
	}

}

 运行结果:

m cannot be resolved to a variable

外部类不可以访问内部类的数据

注释掉:

//System.out.println(m);外部类不可以访问内部类的属性

再执行:

获得外部类的数据:java

用户名:百合不是茶<><><>用户密码1234

 

3作用域中的内部类指作用范围

package com.wj.InsideClass;
import java.util.ArrayList;
/**
 * @author Administrator 作用域的范围
 */
public class InnerFiled {
	// 创建方法
	public void getDeta() {
final Long l1 = System.currentTimeMillis();
	System.out.println("1<><><" + l1);
	// 内部类操作
    class Demos {
			// 内部类的方法
		public void getDeta1() {
	// 使用队列模拟数据添加
ArrayList<Long> list = new ArrayList<Long>();
	for (long i = 0; i < 10000; i++) {
		list.add(i);
				}
	Long l2 = System.currentTimeMillis();
	System.out.println("<><><>" + l2);
				Long Ln = l2 - l1;
		System.out.println(Ln);

			}
		}
		// 在作用域中创建对象
		Demos dm = new Demos();
	dm.getDeta1();// 调用内部类的方法
	}

	public static void main(String[] args) {
		// 创建对象,调用方法
		new InnerFiled().getDeta();
	}
}

 分析:在方法的作用域中创建类和对象,并且调用内部类的方法,这个内部类的作用域只在这个方法之内,

运行结果:

1<><><1427179803697

<><><>1427179803728

31

 

4,匿名内部类

package com.wj.InsideClass;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author Administrator 匿名内部类
 * @param <InnerClass>
 */
public class NoNameClass {

	public long getFrist() {
final Long l1 = System.currentTimeMillis();
	System.out.println("1<><><" + l1);
		List list = new ArrayList();
	for (long i = 0; i < 100000; i++) {
			list.add(i);
		}
		return l1;
	}

	// 创建方法,实现接口
	public InitInner getDeta() {
		// 匿名内部类
		return new InitInner() {
			// 实现接口额方法
		public long getDataInner() {
	long l2 = System.currentTimeMillis();
			System.out.println(l2);
				return l2;
			}
		};

	}

	// 定义接口
	interface InitInner {
		public long getDataInner();
	}

	// 主函数
public static void main(String[] args) {
		// 创建对象 调用方法
	NoNameClass name = new NoNameClass();
		long l = name.getFrist();
		// 调用匿名内部类的方法
	long i = name.getDeta().getDataInner();
System.out.println("总耗时:" + (i - l));
	}
}

 运行结果:

1<><><1427186660645

1427186660660

总耗时:15

 

 

 

java编程思想 --内部类

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
上接《Java编程思想》之为什么需要内部类? public abstract class Event{ private long eventTime;
1、当将内部类向上转型为其基类,尤其是转型为一个接口的时候,内部类就有了用武之地(从实现某个接
成员内部类的意思就是,一个外层类里面包含着一个非static的class,举例如下: class OuterClass {
在Java中,被定义在另一类中的类被称为内部类,另一个相对于内部类的类叫做外部类。内部类允许编程
2011-03-03 22:47 a) 匿名类(区别于匿名对象) 没有明确的类定义格式,是指类的定义和类的对象的创
最近看到一个面试问题 内部类的实质是什么 看了别人给出的解释,上网查了相关资料,也自己动手测试
在某些情况下,把一个类放在另一个类的内部定义,这个定义在其他类内部的类就称为内部类。包含内部
内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在
java内部类总结[转-] 2008-07-08 12:24 内部类是指在一个外部类的内部再定义一个类。内部类作为
一、概述   可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类主要有如下作用:
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号