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

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编程思想-笔记.docx

    本笔记涵盖了Java编程思想的多个方面,包括访问权限控制、封装、继承、多态、接口、内部类、持有对象等。 访问权限控制 访问权限控制是为了把变动的事物与保持不变的事物区分开来。Java中有四种访问权限修饰词:...

    java编程思想(pdf格式)

    《Java编程思想》是Java开发领域的一本经典著作,它深入浅出地介绍了Java语言的核心概念和编程技术。这本书以其详尽的解释、丰富的实例和严谨的逻辑深受程序员喜爱。以下将围绕标题和描述中的知识点进行详细阐述: ...

    java 编程思想.txt

    根据提供的文件信息,我们可以深入探讨《Java编程思想》这一主题中的关键知识点,这些知识点主要集中在类、对象、封装性、继承、多态等核心概念上。 ### Java编程思想概述 《Java编程思想》这本书深入浅出地介绍了...

    C++编程思想-英文版

    这本书全面、深入地介绍了C++语言,不仅覆盖了基础语法,还包括了高级特性和设计模式,旨在帮助读者理解C++的核心理念和编程思想。 1. **C++概述**:C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅...

    Java编程思想(完整版)

    ### Java编程思想(完整版) #### 第1章 对象入门 **1.1 抽象的进步** 抽象在软件工程中扮演着极其重要的角色。通过抽象,开发者能够关注于概念的本质特征,而忽略掉不必要的细节。这有助于降低系统的复杂度,使得...

    java编程思想详解

    【Java编程思想详解】 ...总的来说,Java编程思想的精髓在于理解对象如何代表现实世界中的实体,以及如何通过类和对象的交互来解决问题。通过深入学习和实践,读者能够掌握编写高效、可靠且易于维护的Java代码的技巧。

    java编程思想4课后练习答案

    Java编程思想是学习Java语言的一本经典教材,它深入浅出地介绍了Java编程的各种概念和技术。第四版在原有的基础上增加了许多新的内容,包括对Java 8及后续版本特性的讲解。"java编程思想4课后练习答案"是针对这本书...

    java 编程思想中文版 及 习题

    《Java编程思想》是Java开发领域的一本经典著作,作者是Bruce Eckel。这本书深入浅出地介绍了Java语言的核心概念和技术,对初学者和有经验的开发者都极具价值。书中的内容涵盖了Java语言的各个方面,从基本语法到...

    Java编程思想 中文文档

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。中文文档的出现使得更多的中国开发者能够无障碍地理解这本权威...

    java编程思想读书笔记

    ### Java编程思想读书笔记 #### 一、Java与C++的区别及内存管理 在学习Java的过程中,我们常常会拿它与C++进行比较。这两门语言虽然有着相似之处,但也有许多不同点。 1. **内存管理:** - C++提供了更为底层的...

    Java编程思想和阿里巴巴Java开发手册pdf.zip

    Java编程思想是编程领域的一本经典著作,由Bruce Eckel撰写,它深入浅出地介绍了Java语言的核心概念和编程技巧。这本书旨在帮助开发者理解面向对象编程,并提供了丰富的示例来阐述如何有效地使用Java进行程序设计。...

    Java编程思想第五章练习和习题

    《Java编程思想第五章练习与习题》章节涵盖了Java编程中的关键概念,这些概念对于深入理解和熟练运用Java语言至关重要。本章的练习旨在巩固和拓展读者在类、对象、继承、多态等核心主题上的理解。以下是根据描述和...

    java编程思想需要的包

    在Java编程世界中,"包"...总之,`java编程思想` 和 `包` 这两个标签暗示了这个资源是关于提升Java编程理念和实践能力的,通过探索和学习`com.bruceeckel.*` 包,开发者可以深化对Java的理解,增强实际编程能力。

    java 编程思想4(中文版pdf)

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地讲解了Java语言的核心概念和编程技术,是Java程序员的重要参考书籍。中文版的出现使得更多的中国开发者能够无障碍地学习这本巨著,无需面对语言障碍。...

    JAVA编程基础-06面向对象高级特性-zhouxl.pdf

    ### JAVA编程基础——面向对象高级特性 #### 第六章 面向对象高级特性 本章节将详细介绍Java中面向对象的高级特性,包括类的继承、封装、多态、抽象类、接口以及内部类等内容。通过学习这些概念,读者能够更好地...

    Java编程思想_第4版—习题答案.rar

    《Java编程思想》是 Bruce Eckel 的经典著作,第四版更是深受广大Java程序员喜爱的一本教程。这本书深入浅出地介绍了Java语言的核心概念和技术,包括面向对象编程、类与对象、封装、继承、多态、异常处理、输入/输出...

    java编程思想 答案+源代码.rar

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地讲解了Java语言的各个方面,对于初学者和有经验的程序员来说都是极好的学习资源。提供的"java编程思想 答案+源代码.rar"压缩包包含了本书的解答和源...

Global site tag (gtag.js) - Google Analytics