`
lippeng
  • 浏览: 451170 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java HelloWorld 内部类版

阅读更多

以前学的时候,没怎么看内部类,觉得这个东西很少用到,就先跳过了。现在发现,是时候拾起来了。工作中,逐步的都用到了。所以,就想写个HelloWorld内部类版。

最初想写的是:用Java实现闭包,写了半路,发现不对了,今天的代码不是闭包了。也懒着改了,先发出来吧。

 

先定义了一个接口:

 

package com.lippeng;

/**
 * 随便定义一个接口,里面有个方法
 * 
 * @author lippeng
 * 
 */
public interface Isayer {
	public void say();
}

 

然后,是 HelloWorld类:

 

package com.lippeng;

public class HelloWorld {

	// 看好了,这个东西,是HelloWorld的属性
	private String word;

	/**
	 * Constructor
	 * 
	 * @param word
	 */
	public HelloWorld(String word) {
		this.word = word;
	}

	private class Recorder implements Isayer {

		@Override
		public void say() {

			// 打出 外部类的属性
			System.out.println(word);
		}
	}

	private class Recorder2 implements Isayer {

		@Override
		public void say() {

			// 倒序打出外部类的属性
			System.out.println(new StringBuffer(word).reverse().toString());
		}
	}

	/**
	 * 这个方法,只是得到一个内部类对象
	 * 
	 * @return
	 */
	public Isayer getSayer() {
		return new Recorder();
	}

	public Isayer getReverseSayer() {
		return new Recorder2();
	}

}

 

写个类,测试一下:

 

 

package com.lippeng;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		// 先创建一个对象
		HelloWorld helloWorld = new HelloWorld("Hello World");

		// 得到 接口:它的好处是,helloWorld对象完全可见
		Isayer recorder = helloWorld.getSayer();
		recorder.say();// 这里说出来的东西,来自 helloWorld 对象

		// 只是这样,好处还不明显,看下面的

		// 想说的是,同一个接口,同一个类内部,实现不同的功能
		// 如果不是接口,是抽象类,也是一样的
		Isayer reverseSayer = helloWorld.getReverseSayer();
		reverseSayer.say();
	}
}
 

 

要说的都在代码中,就不废话了。

 

分享到:
评论

相关推荐

    jni简单使用

    生成HelloWorld.h文件(若提示找不到HelloWorld类文件,Java代码中不要写package) 有package时,在包所在目录下打开终端,输入命令javah -jni com.gjl.jnitest.HelloWorld (com.gjl.jnitest为包名) 生成 ...

    java实战练习+ 从”helloworld"到“大型病毒传染”难度“ + Java初学者 + Java习题

    1. 该资源适合刚刚接触java的同学们,通过此练习题,可以更加深刻的理解java语法的内涵,同时熟悉java的使用方法。 2. 在做acm题不能有很好效果的情况下,这个是很好的选择。 3. 题目考察点含有( 类,继承,多态,...

    JAVA SE 开发手册.CHM

    2. HelloWorld程序 3、JAVA的数据类型及转换 4、JAVA运算符 5、JAVA控制语句结构 6、JAVA数组及查找和排序 7、JAVA面向对象之三大特性 8、JAVA面向对象之函数、堆和栈、访问修饰符 9、JAVA面向对象关键字 10...

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    java源码包---java 源码 大量 实例

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    Java经典编程源码基础例程300.zip

    实例001 输出“Hello World” 2 实例002 输出控制台传递的参数 2 实例003 输出由“*”组成的三角形 3 实例004 输出符号表情 5 第2章 Eclipse开发工具 6 实例005 下载并运行Eclipse工具 7 实例006 为Eclipse安装中文...

    java源码包4

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java源码包3

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    1.3.2 编译自己的HelloWorld程序 11 1.3.3 让代码运行起来 13 1.4 初探Hello World 14 1.4.1 类(Class):Java世界中一类物体 14 1.4.2 方法(Method):物体的功能 15 1.4.3 main()方法:所有Java程序执行的...

    Javaw基础课程笔记.zip

    day01、Java 语言发展史_JDK的安装_HelloWorld程序的编写_关键字_标识符_基本数据类型。 day02、Java 数据类型转换_ASCII编码_各种运算符。 day03、Java 选择排序、循环结构和循环控制语句。 day04、Java IDE集成...

    java源码包2

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    1.3.2 编译自己的HelloWorld程序 11 1.3.3 让代码运行起来 13 1.4 初探Hello World 14 1.4.1 类(Class):Java世界中一类物体 14 1.4.2 方法(Method):物体的功能 15 1.4.3 main()方法:所有Java程序执行的...

    java初学者必看

    2.6.6 使用Eclipse编写HelloWorld程序 2.7 本章习题 第3章 Java语言基础 3.1 标识符 3.1.1 标识符的概念 3.1.2 变量命名规则 3.1.3 变量命名技巧 3.2 关键字 3.3 注释 3.4 数据类型 3.4.1 整型 3.4.2 ...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    2.1 从hello world开始 22 2.1.1 撰写java原始码 22 2.1.2 path是什么 24 2.1.3 jvm(java)与classpath 27 2.1.4 编译程序(javac)与classpath 30 .2.2 管理原始码与位码文档 31 2.2.1 编译程序(javac)与...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    gcp.cloudrun.java.hello

    在主目录中:“ java \ pe \ samples \ sammple1”创建文件夹“ controller”,并在内部创建HelloController.java文件(HelloController类) 将@RestController添加到类: @RestController public class ...

    21天学通Java-由浅入深

    28 1.3 程序开发过程 29 1.4 编码规范 29 1.5 HelloWorld:第一个Java程序 30 1.5.1 编写程序代码 30 1.5.2 编译程序代码并运行 30 1.5.3 注意事项 31 1.6 使用Eclipse集成开发工具开发 32 1.7 综合练习 32 1.8 小结...

    JAVA阶段模拟试题

    B编译出错,提示“共有类HelloWorld 必须在HelloWorld.java文件中定义”。 C运行正常,但没有输出内容 D运行时出现异常。 15java类的main方法如下所示,当程序启动运行后,用户在控制台输入“你好”,则程序将()...

Global site tag (gtag.js) - Google Analytics