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

for java beginner 7 JDK的枚举高级玩法

    博客分类:
  • JAVA
阅读更多
实现带抽象方法的枚举

现在看来,不管是自己写还是JDK里的
枚举都是一个 类

大部分写 枚举 都把它当内部类

现在说一下,内部类 可以用那 四个 访问修饰符
[和方法 和 成员变量 平级的]

外部的类只有两个 public 和 默认的



---------------------------

package com.ncs;

public class EnumWithAbstractMethod {

	public static void main(String[] args) {

	}
	
	public enum TrafficLights{
		RED{
			public TrafficLights nextLight(){
				return GREEN;
			}
		}
		,GREEN{
			public TrafficLights nextLight(){
				return YELLOW;
			}
		},
		YELLOW{
			public TrafficLights nextLight(){
				return RED;
			}
		};
		//每个灯都有下一个灯的方法,
		//我们用 抽象 方法
		public abstract TrafficLights nextLight();
		//上面这行不行的,需要你里面的 constants 实现 方法
		//所以在RED后面的一对{}表示一个子类的实现,子类的名字不知道
	}

}


--------------------------------------
上面还没有时间,再弄个时间

package com.ncs;

public class EnumWithAbstractMethod {

	public static void main(String[] args) {
		TrafficLights trafficLights = TrafficLights.GREEN;
		System.out.println(trafficLights.time); //30
		trafficLights = TrafficLights.YELLOW;
		System.out.println(trafficLights.time); //3
	}
	
	public enum TrafficLights{
		RED(30){
			public TrafficLights nextLight(){
				return GREEN;
			}
		}
		,GREEN(30){
			public TrafficLights nextLight(){
				return YELLOW;
			}
		},
		YELLOW(3){
			public TrafficLights nextLight(){
				return RED;
			}
		};
		//每个灯都有下一个灯的方法,
		//我们用 抽象 方法
		public abstract TrafficLights nextLight();
		//上面这行不行的,需要你里面的 constants 实现 方法
		//所以在RED后面的一对{}表示一个子类的实现,子类的名字不知道
		
		private int time;
		//构造方法只可以是private
		//然后上面出错了 修改 加() 就完全OK了
		private TrafficLights(int time){this.time = time;}
	}

}
---
---------非常不错

小知识
new Date(){}; 表示 是 new Date类的子类,子类的 构造方法call Date类的无参
构造方法,
假如现在希望call Date类的有参构造方法
可以这样写:
new Date(50000){};


知道了
  • 内部类
  • 类可以返回自己的类型 [人返回配偶肯定也是一个人,不会是动物]
  • 类里可以有 静态 常量,指向自己的一个实例对象

思想:
枚举只有一个成员时,就可以作为一种单例的实现方式。
1,枚举就是一个类
2,构造方法默认就是私有的,不带参数
3,new方法也是自动写好的
分享到:
评论

相关推荐

    java for the beginner

    introduce in english

    JAVA A beginner's guide sixth edition

    1. Java语言介绍:Java是一种高级编程语言,广泛应用于企业级应用、移动应用和Web服务等领域。Java具有面向对象、平台无关、安全性高和稳定性强等特点,是初学者学习编程的常见选择。 2. Java初学者指南:《JAVA A ...

    Java A Beginner's Guide(6th) 无水印pdf

    Java A Beginner's Guide(6th) 英文无水印pdf 第6版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系...

    Java: A Beginner's Guide 5th Edition

    Fully updated to cover Java Platform, Standard Edition 7 (Java SE 7), Java: A Beginner's Guide, Fifth Edition starts with the basics, such as how to compile and run a Java program, and then discusses...

    Java and Algorithmic Thinking for the Complete Beginner – Compact Edition

    This book is for anyone who wants to learn computer programming and knows absolutely nothing about it. If you are wondering whether this book is going to teach you how to create amazing applets or ...

    Java A Beginner's guide

    本版指南是Java初学者的一本宝贵资源,它不仅介绍了Java的基础知识,也涉及了Java的高级特性。本书的目的是为读者提供一个坚实的基础,使他们能够在日后编写更复杂的Java程序。 值得注意的是,尽管本内容描述了书籍...

    Java 7 A Beginner’s Tutorial, 3rd Edition.pdf

    ### Java 7 初学者教程知识点总结 #### 一、简介 - **书籍基本信息:** - **书名**:《Java 7 初学者教程》第三版 - **作者**:Budi Kurniawan - **出版年份**:2011 年 10 月 - **ISBN**:978-0-9808396-1-6 ...

    Pentaho 8 Reporting for Java Developers azw3

    Pentaho 8 Reporting for Java Developers 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java2:A Beginner's Guide Second Edition 原版 pdf

    最后,本书可能会介绍一些高级主题,如反射、泛型、枚举、注解和Java的并发编程工具,这些都是Java程序员进阶必备的知识。 总之,《Java2: A Beginner's Guide Second Edition》是一本全面的Java入门教程,通过学习...

    Java-Programming-for-Beginner:书

    这本书《Java-Programming-for-Beginner》将引领你走进这个充满无限可能的世界。Java以其“一次编写,到处运行”的特性,使得开发者可以在多种平台上无缝地运行代码,极大地提高了开发效率。 1. **Java基础知识**:...

    Java A Beginner’s Guide(7th) epub

    Java A Beginner’s Guide(7th) 英文epub 第7版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java A Beginner’s Guide(7th) azw3

    Java A Beginner’s Guide(7th) 英文azw3 第7版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java A Beginner's Guide(6th) epub

    Java A Beginner's Guide(6th) 英文epub 第6版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Algorithm-Machine-Learning-for-Beginner-by-Python3.zip

    Algorithm-Machine-Learning-for-Beginner-by-Python3.zip,斯克莱恩、坦索流。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。

    Java A Beginner's Guide(6th) mobi

    Java A Beginner's Guide(6th) 英文mobi 第6版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java - Java A Beginner's Guide 9th edition

    ### Java - Java A Beginner's Guide 9th edition #### Java基础知识概述 本书旨在为初学者提供全面、深入的Java编程入门指导。Java是一种广泛使用的面向对象编程语言,它以其跨平台性、安全性以及丰富的类库支持...

Global site tag (gtag.js) - Google Analytics