java enumset编译时,错误:需要class,interface或enum

提示错误 需要为class interface 或enum。。求解-中国学网-中国IT综合门户网站
> 提示错误 需要为class interface 或enum。。求解
提示错误 需要为class interface 或enum。。求解
转载 编辑:李强
为了帮助网友解决“提示错误 需要为class interf”相关的问题,中国学网通过互联网对“提示错误 需要为class interf”相关的解决方案进行了整理,用户详细问题包括: } double getWidth(){ return W return r*r*3; } double getHeight(){ return H double Width.Height=H } void setWidth(double Width){ this.Width=W } void setHeight(double Height){ TwoDShape(double Width.javaclass TwoDShape{ String name.Width=WTwoDShape.Height=H this.14;
} double area(){ double r = getWidth()/&#47/ double H } private double area(){ }} class Circle extends TwoDShape{ Circle(String name){ super(name);2,double Height){ this,具体解决方案如下:解决方案1:private double area(){ } 没有返回值:多一个大括号。类TwoDShape 错误2; 错误1。错误3:父类构造方法没有见这个类型super(name)解决方案2:第一个错误要怎么改 怎么用super初始化这个类解决方案3:在super里添加一个 TwoDShape(String name){ this.name= }构造方法。解决方案4:谢谢!通过对数据库的索引,我们还为您准备了:答:给你推荐一个软件,超级好用。可以在编写的同时,给你检查错误。eclipse.===========================================问:import javax.swing.JOptionP public class StudentDetails { publi...答:呃,我想说这个问题还真是千年难碰埃这个错误还真不少楼主代码的问题,而是文件编码的问题,楼主估计是用了一个非记事本的编辑器吧?这个文件因编码的问题,在“import javax.swing.JOptionP”这条语句的开头也就是i前面隐藏了一个字符,就像...===========================================问:源码: public class Exam1010 { public static void main(String args[...答:你编辑工具的问题,重新建个文件,拷源码过去就OK了。 提示很明显,public的p,如图: ===========================================问:Package xzit.app. 编译是提示这名错了: p电脑不能识别………… 错...答:package 首字母应该小写吧?===========================================第6个和第7个错误这样直接写路径是错误的,因为java会把 \p 编译成转义字符,这样就错了。 有两种方法改错:1. 这样写:F:/photo/12.bmp2. F:&am...=========================================== 你截图里面怎么import上面几行还有语句?import语句之前只能有package语句请提供buybook.java文件完整代码,要不然不好判断你具体什么问题=========================================== 把文件名改成Test.java===========================================你应该确保你的浏览器是否正常工作,如果你打开别的网页可行,那么就说明你的浏览器工作正常. 还有一种可能那就是你的输入的网页有错误,但这种可能性很小.你可你下载一个...===========================================Internet Explorer遇到问题需要关闭……"的信息提示。此时,如果单击"发送错误报告"按钮... ③将IE升级到最新版本。IE 6.0 SP1 可使用以IE为核心的浏览器,如MyIE2。它占...=========================================== 电脑上安装了打开ppt的组件了 但版本较低,而你要打开的文件是用高版本格式制作的,就打不开了。如电脑上安装的是office2003 而你的文件是2007格式或2010...=========================================== 系统出问题了,尝试一下用其他的软件修复IE=========================================== 例三:RealOneGold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现"0xffffffff"指令引用的"0xffffffff"内存。该内存不能为"read"的提示。解决方法:当使用的输入法为微...===========================================D:\Cmirserver\mir200\Envir\MapEvent.txt(这个文件是地图事件的配置文件),您的错误是... ; 物品:(物品名称 - *) * 代表不需要物品 ; 组队:(0 - 1) 0为不需要组队,1为必须组队才触发...===========================================Explorer是否为默认的浏览器"把前面的钩选上,确定。 4、设置主页:"工具"→Internet选项... 其余的不要取消免疫。 为什么在打开网页需要加载项时就出现错误提示?可以回答ww...===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助java代码编译老是报错:Example8_1.java:1:错误:需要class,interface或enum..._百度知道
java代码编译老是报错:Example8_1.java:1:错误:需要class,interface或enum...
println(&quot.start();
Si&lt:&=5.start();i&lt. threadB;
try{ sleep(1000)
for(int i=0;i++){
timeNow = new Data().toString());=5;i++){
timeNow = new Data();我是threadB; }}class Athread extends Thread{ public void run(){
D static Bthread threadB;
try{sleep(2000).Date.println(&public class Example8_1{ static Athread threadA;}
catch(InterruptedException e){}
} }}class Bthread extends Thread{ public void run(){
Date timeN
for(int i=0;+timeN
threadA; public static void main(String args[]){
threadA= new Athread(); threadB= new Bthread():&我是 threadA.out.+timeNow.toString())
提问者采纳
不是java.until(2)timeNow 前后大小写不一致(3)timeNow 是Date()几个错误:(1)java
改正了你说的错误,但是编译还是报同样的错误!
//仔细查查,timeNow=Data()不止一处import&java.util.Dpublic&class&Example8_1{&static&Athread&threadA;&&static&Bthread&threadB;&&public&static&void&main(String&args[]){&&threadA=&new&Athread();&&&threadB=&new&Bthread();&&threadA.start();&&threadB.start();&&}&}class&Athread&extends&Thread{&public&void&run(){&&&Date&timeN&&&&for(int&i=0;i&=5;i++){&&&&&&timeNow&=&new&Date();&&&&System.out.println(&我是&threadA:&+timeNow.toString());&&&&&try{sleep(2000);}&&&catch(InterruptedException&e){}&&&&}&&&}}&&&class&Bthread&extends&Thread{&public&void&run(){&&&Date&timeN&&&&for(int&i=0;i&=5;i++){&&&timeNow&=&new&Date();&&&System.out.println(&我是threadB:&+timeNow.toString());&&&try{&sleep(1000);}catch(InterruptedException&e){}&&}&&&}}
2处都改过来了啊,你编译能通过?
提问者评价
谢谢,最后看了下是我的电脑可能出来问题,换了个文档重新写就编译通过了!谢谢!
其他类似问题
按默认排序
其他2条回答
&=&Test&nbsp.toString());new&&i++)&=&(int&
threadB; }}class&timeN+&5;{
sleep(1000);{
threadA&static&&run()&
try&=&nbsp.start();Athread&nbsp.out几处错误;threadA;Bthread();(InterruptedException&class&Athread(); &{
timeNow&我是&nbsp.&main(String&i&(InterruptedException&threadB;{
} }}class&nbsp:&
Date&nbsp:&catch&import&Bthread&Bthread&e)&0;timeNrun()&5;{ public&//new& public&new&{ public&nbsp.println(&i&=&
System:&new&&=&=&+&=& &
}&public&extends&nbsp.println(&0;timeN=&&&我是threadB;void&timeN&&&catch&extends&void& static&i&{
Date&threadA.Thread&nbsp.toString());
}&i&Date();Thread&{
sleep(2000).Dnew&Athread&Date();{ static&args[])&e)&Data()
Svoid&&nbsp.start();i++)&//timenow
for&&(int& &nbsp
class Athread extends Thread {},这样写不行,线程的实现方式(1)继承Thread类,(2)实现Runnable接口
enum的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁java语言中的enum使用方法
转)JDK 1.5中的ENUM用法
Monday, 20. November :30
Enum是enumeration(列举)的简写形式,包含在java.lang包中.熟悉C,
C++, C#, 或 Pascal人应该对列举有所了解,先看个例子:
public enum
Season { winter, spring, summer, fall }
一个enum是定义一组值的对象,它可以包括零个或多个值成员.它是属于enum类型的,一个enum对象中不可有两个或多个相同的属性或值.在次之前的java程序员一般是用接口的方法实现列举的,如
public interface Season {
static winter = 0;
static spring = 1; //etc..
引入了enum的java的列举的编写方便了许多,只须定义一个enum型的对象.enum对象的值都回自动获得一个数字值,从0开始,依次递增.看一个比较简单的enum实现的例子:
EnumDemo.java
package net.javagarage.
public class EnumDemo {
private enum
Seasons { winter, spring,
summer, fall }
//list the values
public static void main(String[] args) {
for (Seasons s : Seasons.values()){
System.out.println(s);
运行上述代码你回得到 以下结果:
Enum的属性调用:
下面的代码展示了调用enum对象的方法,这也是它通常的用法:
package net.javagarage.
public class EnumSwitch {
private enum
Color { red, blue, green }
//list the values
public static void main(String[] args) {
//refer to the qualified value
doIt(Color.red);
private static void doIt(Color c){
switch (c) {
System.out.println("value is " + Color.red);
case green:
System.out.println("value is " + Color.green);
case blue:
System.out.println("value is : " + Color.blue);
System.out.println("default");
为enums添加属性和方法
enums也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样.
package net.javagarage.
public class EnumWithMethods {
//declare the enum and add values
public enum
winter, spring, summer,
private final static String location = "Phoenix";
public static Season getBest(){
if (location.equals("Phoenix"))
public static void main(String[] args) {
System.out.println(Season.getBest());
就是这么的简单.但是有一点是需要注意的,那就是enums的值列表必须紧跟在enum声明,不然编译时将会出错.
Enums构造函数:
和类一样enums也可以有自己的构造函数,如下:
package net.javagarage.
public class EnumConstructor {
public static void main(String[] a) {
//call our enum using the values
for (Temp t : Temp.values())
System.out.println(t + " is : " + t.getValue());
//make the enum
public enum
absoluteZero(-459), freezing(32),
boiling(212), paperBurns(451);
//constructor here
Temp(int value) {
this.value =
//regular field?but make it final,
//since that is the point, to make constants
//regular get method
public int getValue() {
输出结果是:
absoluteZero is : -459
freezing is : 32
boiling is : 212
paperBurns is : 451
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。developerWorks 社区
本文主要介绍了 Java 语言中枚举类型,以及如何定制 Enum 类型的定义,如何正确使用 Enum 类型。
, 高级软件工程师
刘进目前在 IBM STG 云计算团队从事云管理平台产品开发,拥有十年的 Java 应用开发经验,对 J2SE 和 J2EE 的相关应用开发比较熟悉。
Enum 类型的介绍枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。举个例子来说明一下,如果希望为彩虹描绘出七种颜色,你可以在 Java 程序中通过常量定义方式来实现。清单 1. 常量定义 Public static class RainbowColor {
// 红橙黄绿青蓝紫七种颜色的常量定义
public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int CYAN = 4;
public static final int BLUE = 5;
public static final int PURPLE = 6;
}使用的时候,你可以在程序中直接引用这些常量。但是,这种方式还是存在着一些问题。类型不安全由于颜色常量的对应值是整数形,所以程序执行过程中很有可能给颜色变量传入一个任意的整数值,导致出现错误。没有命名空间由于颜色常量只是类的属性,当你使用的时候不得不通过类来访问。一致性差因为整形枚举属于编译期常量,所以编译过程完成后,所有客户端和服务器端引用的地方,会直接将整数值写入。这样,当你修改旧的枚举整数值后或者增加新的枚举值后,所有引用地方代码都需要重新编译,否则运行时刻就会出现错误。类型无指意性由于颜色枚举值仅仅是一些无任何含义的整数值,如果在运行期调试时候,你就会发现日志中有很多魔术数字,但除了程序员本身,其他人很难明白其奥秘。如何定义 Enum 类型为了改进 Java 语言在这方面的不足弥补缺陷,5.0 版本 SDK 发布时候,在语言层面上增加了枚举类型。枚举类型的定义也非常的简单,用 enum 关键字加上名称和大括号包含起来的枚举值体即可,例如上面提到的彩虹颜色就可以用新的 enum 方式来重新定义: enum RainbowColor { RED, ORANGE, YELLOW, GREEN, CYAN, BLUE, PURPLE }从上面的定义形式来看,似乎 Java 中的枚举类型很简单,但实际上 Java 语言规范赋予枚举类型的功能非常的强大,它不仅是简单地将整形数值转换成对象,而是将枚举类型定义转变成一个完整功能的类定义。这种类型定义的扩展允许开发者给枚举类型增加任何方法和属性,也可以实现任意的接口。另外,Java 平台也为 Enum 类型提供了高质量的实现,比如默认实现 Comparable 和 Serializable 接口,让开发者一般情况下不用关心这些细节。回到本文的主题上来,引入枚举类型到底能够给我们开发带来什么样好处呢?一个最直接的益处就是扩大 switch 语句使用范围。5.0 之前,Java 中 switch 的值只能够是简单类型,比如 int、long、char, 有了枚举类型之后,就可以使用对象了。这样一来,程序的控制选择就变得更加的方便,看下面的例子:清单 2. 定义 Enum 类型 // 定义一周七天的枚举类型
public enum WeekDayEnum { Mon, Tue, Wed, Thu, Fri, Sat, Sun }
// 读取当天的信息
WeekDayEnum today = readToday();
// 根据日期来选择进行活动
switch(today) {
 Mon:
 Tue:
 Wed:
 Thu:
 Fri:
 Sat:
 Sun:
}对于这些枚举的日期,JVM 都会在运行期构造成出一个简单的对象实例一一对应。这些对象都有唯一的 identity,类似整形数值一样,switch 语句就根据此来进行执行跳转。如何定制 Enum 类型除了以上这种最常见的枚举定义形式外,如果需要给枚举类型增加一些复杂功能,也可以通过类似 class 的定义来给枚举进行定制。比如要给 enum 类型增加属性,可以像下面这样定义:清单 3. 定制枚举类型 // 定义 RSS(Really Simple Syndication) 种子的枚举类型
public enum NewsRSSFeedEnum {
// 雅虎头条新闻 RSS 种子
YAHOO_TOP_STORIES(""),
//CBS 头条新闻 RSS 种子
CBS_TOP_STORIES(""),
// 洛杉矶时报头条新闻 RSS 种子
LATIMES_TOP_STORIES("");
// 枚举对象的 RSS 地址的属性
private String rss_
// 枚举对象构造函数
private NewsRSSFeedEnum(String rss) {
this.rss_url =
// 枚举对象获取 RSS 地址的方法
public String getRssURL() {
return this.rss_
}上面头条新闻的枚举类型增加了一个 RSS 地址的属性 , 记录头条新闻的访问地址。同时,需要外部传入 RSS 访问地址的值,因而需要定义一个构造函数来初始化此属性。另外,还需要向外提供方法来读取 RSS 地址。如何避免错误使用 Enum不过在使用 Enum 时候有几个地方需要注意:enum 类型不支持 public 和 protected 修饰符的构造方法,因此构造函数一定要是 private 或 friendly 的。也正因为如此,所以枚举对象是无法在程序中通过直接调用其构造方法来初始化的。定义 enum 类型时候,如果是简单类型,那么最后一个枚举值后不用跟任何一个符号;但如果有定制方法,那么最后一个枚举值与后面代码要用分号';'隔开,不能用逗号或空格。
由于 enum 类型的值实际上是通过运行期构造出对象来表示的,所以在 cluster 环境下,每个虚拟机都会构造出一个同义的枚举对象。因而在做比较操作时候就需要注意,如果直接通过使用等号 ( ‘ == ’ ) 操作符,这些看似一样的枚举值一定不相等,因为这不是同一个对象实例。
看下面的这个例子:清单 4. 避免错误使用 Enum 示例 // 定义一个一周七天的枚举类型
package example.enumeration.
public enum WeekDayEnum {
Mon(1), Tue(2), Wed(3), Thu(4), Fri(5), Sat(6), Sun(7);
WeekDayEnum(int idx) {
this.index =
public int getIndex() {
// 客户端程序,将一个枚举值通过网络传递给服务器端
package example.enumeration.
import java.io.IOE
import java.io.ObjectOutputS
import java.io.OutputS
import java.net.InetSocketA
import java.net.S
import java.net.UnknownHostE
public class EnumerationClient {
public static void main(String... args) throws UnknownHostException, IOException {
Socket socket = new Socket();
// 建立到服务器端的连接
socket.connect(new InetSocketAddress("127.0.0.1", 8999));
// 从连接中得到输出流
OutputStream os = socket.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
// 将星期五这个枚举值传递给服务器端
oos.writeObject(WeekDayEnum.Fri);
oos.close();
os.close();
socket.close();
// 服务器端程序,将从客户端收到的枚举值应用到逻辑处理中
package example.enumeration.
import java.io.*;
import java.net.ServerS
import java.net.S
public class EnumerationServer {
public static void main(String... args) throws IOException, ClassNotFoundException {
ServerSocket server = new ServerSocket(8999);
// 建立服务器端的网络连接侦听
Socket socket = server.accept();
// 从连接中获取输入流
InputStream is = socket.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
// 读出客户端传递来的枚举值
WeekDayEnum day = (WeekDayEnum) ois.readObject();
// 用值比较方式来对比枚举对象
if (day == WeekDayEnum.Fri) {
System.out.println("client Friday enum value is same as server's");
} else if (day.equals(WeekDayEnum.Fri)) {
System.out.println("client Friday enum value is equal to server's");
System.out.println("client Friday enum value is not same as server's");
// 用 switch 方式来比较枚举对象
switch (day) {
System.out.println("Do Monday work");
System.out.println("Do Tuesday work");
System.out.println("Do Wednesday work");
System.out.println("Do Thursday work");
System.out.println("Do Friday work");
System.out.println("Do Saturday work");
System.out.println("Do Sunday work");
System.out.println("I don't know which is day");
ois.close();
is.close();
socket.close();
}打印结果如下: client Friday enum value is same as server's
Do Friday work通过程序执行结果,我们能够发现在分布式条件下客户端和服务端的虚拟机上都生成了一个枚举对象,即使看起来一样的 Fri 枚举值,如果使用等号‘ == ’进行比较的话会出现不等的情况。而 switch 语句则是通过 equal 方法来比较枚举对象的值,因此当你的枚举对象较复杂时候,你就需要小心 override 与比较相关的方法,防止出现值比较方面的错误。Enum 相关工具类JDK5.0 中在增加 Enum 类的同时,也增加了两个工具类 EnumSet 和 EnumMap,这两个类都放在 java.util 包中。EnumSet 是一个针对枚举类型的高性能的 Set 接口实现。EnumSet 中装入的所有枚举对象都必须是同一种类型,在其内部,是通过 bit-vector 来实现,也就是通过一个 long 型数。EnumSet 支持在枚举类型的所有值的某个范围中进行迭代。回到上面日期枚举的例子上: enum WeekDayEnum { Mon, Tue, Wed, Thu, Fri, Sat, Sun }你能够在每周七天日期中进行迭代,EnumSet 类提供一个静态方法 range 让迭代很容易完成: for(WeekDayEnum day : EnumSet.range(WeekDayEnum.Mon, WeekDayEnum.Fri)) {
System.out.println(day);
}打印结果如下: Mon
FriEnumSet 还提供了很多个类型安全的获取子集的 of 方法,使你很容易取得子集: EnumSet&WeekDayEnum& subset = EnumSet.of(WeekDayEnum.Mon, WeekDayEnum.Wed);
for (WeekDayEnum day : subset) {
System.out.println(day);
}打印结果如下: Mon
Wed与 EnumSet 类似,EnumMap 也是一个高性能的 Map 接口实现,用来管理使用枚举类型作为 keys 的映射表,内部是通过数组方式来实现。EnumMap 将丰富的和安全的 Map 接口与数组快速访问结合到一起,如果你希望要将一个枚举类型映射到一个值,你应该使用 EnumMap。看下面的例子:清单 5. EnumMap 示例 // 定义一个 EnumMap 对象,映射表主键是日期枚举类型,值是颜色枚举类型
private static Map&WeekDayEnum, RainbowColor& schema =
new EnumMap&WeekDayEnum, RainbowColor&(WeekDayEnum.class);
// 将一周的每一天与彩虹的某一种色彩映射起来
for (int i = 0; i & WeekDayEnum.values(). i++) {
schema.put(WeekDayEnum.values()[i], RainbowColor.values()[i]);
System.out.println("What is the lucky color today?");
System.out.println("It's " + schema.get(WeekDayEnum.Sat));当你询问周六的幸运色彩时候,会得到蓝色:清单 6. 运行结果 What is the lucky color today?
It's BLUE结束语Enum 类型提出给 JAVA 编程带了了极大的便利,让程序的控制更加的容易,也不容易出现错误。所以在遇到需要控制程序流程时候,可以多想想是否可以利用 enum 来实现。
参考资料 ,Java 语言规范描述。
,Java 接口文档描述。
:这里有数百篇关于 Java 编程各个方面的文章。
加入 。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Java technologyArticleID=937050ArticleTitle=Java 语言中 Enum 类型的使用介绍publish-date=java编绎时出现如下错误:需要为 class、interface 或 enum怎么办啊_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:251,440贴子:
java编绎时出现如下错误:需要为 class、interface 或 enum怎么办啊收藏
public class Fibonacci{
public static void main(String arg []){
System.out.println(f(40));
public static long f(long index){
if(index==1 || index==2)
long f1=1;
long f2=1;
for(int i=0;i&i++)
用MyEclipse运行过一次,完全没问题
估计,你用CMD命令编译的,注意你文件名,是否有.class后缀?
不是文件名问题 我都改成一样的 大小写也是对的 就是编译通不过
所以才没class文件啊
我用cmd运行也没问题
把错误发上来看看
换个文件目录试试
JAVA俱乐部,邀请天下好学之人加入/club/9089825/
我用CMD运行了,没有错啊,
是不是环境变量没设好?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 java enumset 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信