`
百合不是茶
  • 浏览: 345288 次
社区版块
存档分类
最新评论

java编程思想 --内部类

阅读更多

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

 

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

 

 

 

1
1
分享到:
评论

相关推荐

    java编程思想-初始化与清理

    java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...

    《Java编程思想》第十章 内部类

    本系列是我本人阅读java编程思想这本书的读书笔记,主要阅读第五章到第十七章以及第二十一章的内容,今天的笔记是第十章 java中有一种类叫内部类,这一章我们就来了解一下什么是内部类以及内部类的一些特性。 1.创建...

    java 编程思想 (多态,接口和内部类)

    java对象的引用,控制程序流,初始化和清除,封装,复用类,多态,接口和内部类,异常处理try——catch,类的检查,对象的集合,i/o系统,并发,分析与设计,对象的传递和返回

    浅谈Java内部类的四个应用场景

    Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它,虽然我们在很多时候会被动的使用到它,但它仍然像一个幕后英雄一样,不为我们所知,不为我们...

    Java课程设计-21点小游戏.docx

    常用工具类与算法的实现(数组、向量、字符串、链表),java.awt、javax.swing中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。...

    C++编程思想1-5 清晰PDF

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    Java课程设计-21点小游戏(2).docx

    常用工具类与算法的实现(数组、向量、字符串、链表),java.awt、javax.swing中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。...

    AIC的Java课程1-6章

    人民邮电出版社  “Java 编程思想” 第3版 机械工业出版社  教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 高 中 控制结构 高 高 易 数组 高 高 中...

    C++编程思想 (作者学习C++亲身体会及多年教学经验)

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    Thinking in Java 中文第四版+习题答案

    附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测 D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖语言的方法 D.3.3 特殊情况 D...

    java开发手册、java编程和开发

    《java开发手册》由浅入深、全面系统地介绍java编程和开发的方方面面。书中各章提供了大量有针对性的实例,供读者实战演练。本书针对初学和自学读者的特点,按照实际开发流程对java语言的程序设计进行讲解,简明易懂...

    Java核心技术卷一-完整书签-pdf

    Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据JavaSE7全面更新,同时修正了第8版中的...

    thinkingjava:编程思想

    thinkingjava 编程思想 3、操作符 4、控制执行流程 5、初始化与清理 6、访问权限控制 7、复用类 8、多态 9、接口 10、内部类

    java学习重点

    类的目的是封装复杂性,在类内部存在隐藏实现复杂性机制; 封装(encapsulation) 的两个好处: 模块化:可以独立于其他对象的源代码进行编写和维护,可以很容易的将对象在系统中传递; 隐藏信息:其他对象可以通过本...

    Thinking in java4(中文高清版)-java的'圣经'

    第15章 泛型 第16章 数组 第17章 容器深入研究 第18章 Java I/O系统 第19章 枚举类型 第20章 注解 第21章 并发 第22章 图形化用户界面 附录A 补充材料 可下载的补充材料 Thinking in C:Java的基础 Java编程思想 ...

    JAVA基础入门教程

    z 面向对象编程思想(类、方法、变量、对象、构造方法) z 类的继承(抽象类、接口、包、内部类)、数组、字符串 z Java异常处理机制 z Java基本类库介绍 z Java多线程编程 z Java I/O 流(character Stream, byte Stream...

    达内科技Java内部教学课程资料TTS

    达内内部教学课程文档Word+课后作业文档,包括内容有JAVA编程思想Java基础数组IO流、数据库、JDBC、Javaweb、spring、spring框架

    Java核心技术_第八版(英文原版).part1

    《Java核心技术》出版以来一直畅销不衰,深受读者青睐,是与《Java编程思想》齐名的Java图书泰山北斗,各大Java论坛大版主等专家隆重推荐! 每个新版本都尽可能快地跟上Java开发工具箱发展的步伐,而且每一版都重新...

    java学习书籍及建议.docx

    《Java编程思想》:这本书是Java编程的经典教材,适合初级和中级开发者。它全面介绍了Java编程的原理和方法,包括基础知识和面向对象编程。 《Java核心技术卷Ⅰ》:这是一本实用的Java教程,详细介绍了Java语言的...

    Java核心技术_第八版(英文原版).part2

    《Java核心技术》出版以来一直畅销不衰,深受读者青睐,是与《Java编程思想》齐名的Java图书泰山北斗,各大Java论坛大版主等专家隆重推荐! 每个新版本都尽可能快地跟上Java开发工具箱发展的步伐,而且每一版都重新...

Global site tag (gtag.js) - Google Analytics