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

for java beginner 5-2 - 自己实现枚举-下

    博客分类:
  • JAVA
阅读更多
for java beginner 5-2 - 自己实现枚举-下

刚刚不是说了会有N多 IF ELSE
现在把他们弄掉


--------------
package com.ncs;

//眼睛大一点,这不是"类",是我写的枚举
//★2 变了
public abstract class Weekday {
	
	//别的地方就不要new了,只有我自己可以new
	private Weekday(){}
	
	
	//----------------------------------new 
	//刚刚说了N多 if else不是我们要的, 我们要thinking .....
	//想想能不能把每个 对象 的 nextday()方法 由他们 自己去实现 ,而不是一个 '大类' 全部完成
	// 可以, JAVA思想里有 抽象 方法, 抽象方法就是需要每个 '子类' 自己去实现 的
	//★1写了这个 抽象 方法后 上面的类就要变了
	public abstract Weekday nextDay();
	//====================================new 
	
	
	//然后 自己 可以包含很多个 自己
	//这只是演示而已,不弄7 个了,省得等下N多 if else
	//实现里不会自己去写ENUM的,也不会让你写的
	//★3 然后这里也变了,怎么可以去new 一个 抽象 类呢
	// 我们可以去new 抽象 类的子类
	/* ============下面两行不行了,换了
	public static final Weekday SUN = new Weekday(); 
	public static final Weekday MON = new Weekday();
	*/
	
	public static final Weekday SUN = new Weekday() {
		//★★传说里的 匿名 类 出现了 ,也就多了一对{}
		// 可以按 修复 键会提示你 实现方法的
		@Override
		public Weekday nextDay() {
			// TODO Auto-generated method stub
			// 有限个,知道了 SUN,那就返回 MON
			return MON;
		}
	};
	
	
	public static final Weekday MON = new Weekday() {
		//★★传说里的 匿名 类 出现了 ,也就多了一对{}
		// 可以按 修复 键会提示你 实现方法的
		@Override
		public Weekday nextDay() {
			// TODO Auto-generated method stub
			// 有限个,知道了 MON,那就返回 SUN
			return SUN;
		}
	};
	
	
	//好习惯来了,写了一个东西么,最好覆盖一下 toString() 
	public String toString() {
		return this==SUN?"SUN":"MON";
		//只有两个就偷偷懒吧
		//如果写全7个,这里就要长了 N多 if else
		//这里 有了 内部类就不需要了N多 if else
	}
}

------------------------------------------------
枚举换这个方法实现,其他什么都不变,还是可以运行正确的,非常正确!!
采用 抽象方法定义nextDay()就将 巨量的 if else 转移为 一个个独立的类
分享到:
评论
1 楼 wa327114652 2010-09-09  
很想学习,但能再详细点吗?

相关推荐

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

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

    Java - Java- A Beginner’s Guide - 7th edition

    ### Java - Java: A Beginner’s Guide - 7th Edition #### Java Fundamentals **起源与发展:** Java 语言起源于1990年代初期,在Sun Microsystems由James Gosling领导的一支团队开发。Java的设计目标是创造一种...

    Python库 | for-beginner-piano-0.3.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:for-beginner-piano-0.3.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Java-Programming-for-Beginner:书

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

    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 for the beginner

    introduce in english

    Python-Programming-for-the-Absolute-Beginner-3rd-Edition.zip

    Pygame是Python的一个扩展库,专为开发2D游戏和多媒体应用而设计。在本教程中,你将逐步了解Python编程的基础,同时通过构建实际的游戏项目来加深理解。 首先,你将学习如何安装Python和Pygame库。安装Python通常...

    godot-beginner-2d-platformer-1.1.0_game_godot_

    在"godot-beginner-2d-platformer-1.1.0"项目中,你将找到一个已经实现的2D平台游戏模板,包括预设的角色动画、碰撞检测和基本的游戏循环。通过研究并修改这个项目,新手可以快速理解Godot Engine的工作原理,并逐步...

    magic-perl-for-beginner-.rar_magic

    标题中的"magic-perl-for-beginner-"暗示了这个压缩包是为Perl初学者准备的一套学习资源。 《神奇的Perl》很可能是一本深入浅出的教程,旨在帮助新手快速掌握Perl语言的基础和进阶技巧。描述中提到它是“最佳的PERL...

    For Dummies. Java All-in-One Desk Reference(《傻瓜系列:Java完全桌面参考手册》)

    in-one programming reference * Covers the recent release of the Java 2 Platform Standard Edition 5.0 and the new J2SE Development Kit 5.0 * Starts with beginner topics including getting started ...

    Java - A Beginner’s Guide - Sixth Edition - Herbert Schildt

    ### Java - A Beginner’s Guide - Sixth Edition - Herbert Schildt #### Java Fundamentals Java is a high-level, object-oriented programming language that was designed to be portable, robust, and secure...

    COCOS2d-X by Example Beginner-'s Guide

    ### COCOS2d-X by Example Beginner's Guide #### 概述 《COCOS2d-X by Example Beginner's Guide》是一本专为初学者设计的Cocos2d-x游戏开发指南。本书由Roger Engelbert编写,旨在通过一系列实用的例子帮助读者...

    Beginner-guide-yolo编程资源

    Beginner-guide-yolo编程资源

    Beginner - MetaTrader 5脚本.zip

    "beginner.mq5"可能就是这样一个实现,当满足预设的建仓条件时,它会在图表上显示特定的视觉提示。 **学习和优化脚本** 要深入理解和优化"beginner.mq5",你需要具备基本的MQL5编程知识。通过阅读和理解脚本代码,...

    spring mvc beginner guider -source code

    Spring MVC 是一个强大的Java Web开发框架,由Spring IO项目维护,是Spring框架的重要组成部分。它为构建基于模型-视图-控制器(MVC)模式的Web应用程序提供了全面的支持。"Spring MVC beginner guider - source ...

    NumPy-1-5-Beginner-039-s-Guide-234页

    1. 高性能:NumPy 使用了 C 语言实现,具有非常高的执行速度。 2. 灵活性高:NumPy 提供了大量数学函数和操作符,非常灵活。 3. 跨平台:NumPy 可以在多种操作系统上运行,包括 Windows、Linux、Mac OS 等。 4.ฟร...

    Java-A-Beginner-s-Guide:赫伯特·希尔德(Herbert Schildt)的书

    2. **基本语法**:Java语言的基础包括变量、数据类型、运算符、控制结构(如if语句、for循环、while循环)。书中会详细介绍这些基础知识,帮助初学者构建程序逻辑。 3. **类与对象**:Java是面向对象的语言,类是...

    java实现文件复制源码-Learning-Java-Beginner-Stage-:我学习Java时的参考代码。此文件中的任何代码都可能出于

    本节将深入探讨如何在Java中实现文件复制,并结合"Learning-Java-Beginner-Stage-"项目中的源码进行实践,该项目提供了新手学习Java的参考代码。在实际编程中,我们常常会遇到需要复制文件的情况,例如备份、迁移...

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

    《Java2: A Beginner's Guide Second Edition》是学习Java编程语言的经典教材,尤其适合初学者。这本书详尽地介绍了Java的基础知识,旨在帮助读者从零开始掌握Java编程技能。PDF版本方便了读者在线查阅和学习。 ...

Global site tag (gtag.js) - Google Analytics