Java的一些高级特性(三)——类部分
来源:互联网 发布:华安股票交易软件 编辑:程序博客网 时间:2024/05/01 08:23
首先我们来看看成员类。Member Class指的是这个class是作为另一个类的成员(或者称之为属性)存在的,例如代码:
package com.freesoft.java7newfeature;public class TestClass {public static void main(String[] args) {TestClass t = new TestClass();t.TestMember();}public void TestMember() {MemberClass m = new MemberClass("MemberClass Test");System.out.println(m);}class MemberClass {private String name;public MemberClass(String name) {this.name = name;}@Overridepublic String toString() {return "MemberClass [name=" + name + "]";}}}
下面我们来看看(Local) Inner Class。之所以将Local括号括起来是因为没有outter/remote inner class。Inner Class的意思是创建在方法体中的类代码块,例如代码:
public void TestMember() {MemberClass m = new MemberClass("MemberClass Test");System.out.println(m);class LocalInnerClass {private String name;public LocalInnerClass(String name) {this.name = name;}@Overridepublic String toString() {return "LocalInnerClass [name=" + name + "]";}}LocalInnerClass i = new LocalInnerClass("InnerClass Test");System.out.println(i);}
有了Inner Clas我们当然需要Anonymous Inner Class。这个类仍然是一个Inner Class,不过特别的是这个类没有定义一个名字(主要是有两种情况:一种是这个类实在太简单,没必要重新创建一个外部类;另一种情况是这个类的实现仅在此处有效,例如Android中的界面元素的事件响应处理),此时我们需要使用匿名内部类,如:
public void TestMember() {MemberClass m = new MemberClass("MemberClass Test");System.out.println(m);//class LocalInnerClass {//private String name;//public LocalInnerClass(String name) {//this.name = name;//}//@Override//public String toString() {//return "LocalInnerClass [name=" + name + "]";//}//}////LocalInnerClass i = new LocalInnerClass("InnerClass Test");//System.out.println(i);System.out.println(new Object(){@Overridepublic String toString() {return "Anonymous Inner Class.";}});}
最后我们看一下一个特殊的类:enum,这个例子和我们平常使用enum时仅仅使用枚举值不同的是,我们还可以对EnumOliveArea这个类的对象toString(),当然你还可以扩充别的方法:
package com.freesoft.testentity;public enum EnumOliveArea {// 这些是enum的实例,可以看到创建实例时使用了ConstructorKALAMARA("Kalamara"), LIGURIO("Liguirio"), PICHOLINE("Pichooline"), GOLDEN("Golden");private String name;private EnumOliveArea(String name) {this.name = name;}@Overridepublic String toString(){return name;}}
- Java的一些高级特性(三)——类部分
- Java的一些高级特性(二)——初始化和赋值部分
- Java的一些高级特性(三)——关于反射
- Java的一些高级特性(四)——集合
- Java的一些高级特性(一)——Java 7新特性
- Java的一些高级特性(五)——测试和异常处理
- Java的一些高级特性(六)——Java7中的目录和文件管理
- Java的一些高级特性(七)——Java7中的I/O
- Java的一些高级特性(八)——Java7中的线程
- java的一些高级特性总结
- 编码练习——Java-6-类的高级特性
- Java中类的高级特性——内部类
- 编码练习——Java-6-类的高级特性
- Java类的高级特性
- java 类的高级特性
- Java高级特性部分(继承与多线程)
- Python 的一些高级特性
- python的一些高级特性
- 线程的同步--信号量
- html5 的一个应用
- Core Graphics 101: 弧线和轨迹
- 第二章 构造和运行模块
- 如何在ubuntu 12.10 eclipse juno上运行map-redude程序
- Java的一些高级特性(三)——类部分
- c++ 类、对象和内存1 类、对象和内存
- Core Graphics 101: 光滑的按钮
- Core Graphics 101: 模版
- 关于tomcat startup.bat启动后一闪而过的问题(转)
- C++类对象内存结构 .
- 周总结
- AOP中的基础概念
- 当你输入一个网址的时候,实际会发生什么?