javaenum源码_java源码讲解

hacker|
158

文章目录:

java中的enum

不会啊~  这个程序没问题,下面的是我运行结果截屏。

你试试下面网址找找:

或者你可以换一个java运行工具,Eclipse,JCreator ,你这个程序我用Eclipse运行也是对的。

问题回答补充:

java代码中空白只能是半角空格符或者是tab符,否则可能导致上述问题!另外文本编辑器的编码应采用ascII 。

你检查一下你空白地方的空格符,是不是有全角符,建议你用Eclipse ,把所有空格去掉,在用Eclipse 自动对齐格式。

另外:如果实在不行的话,只能重装jdk试试了。真解决不了了就只能这样咯。

加油吧!!

求java编写的仓库管理系统源代码或详细设计

import java.util.*;

import java.awt.event.*;

import java.awt.*;

import javax.swing.*;

import java.io.*;

class 商品 extends Panel

{String 代号,名称;int 库存;float 单价;

商品(String 代号,String 名称,int 库存,float 单价)

{this.代号=代号;this.名称=名称;this.库存=库存;this.单价=单价;

}

}

class ShowWin extends JFrame implements ActionListener

{ Hashtable hashtable=null;

JTextField 代号文本框=new JTextField(),

名称文本框=new JTextField(),

库存文本框=new JTextField(),

单价文本框=new JTextField(),

查询文本框=new JTextField(),

查询信息文本框=new JTextField(),

删除文本框=new JTextField();

JButton b_add=new JButton("添加商品"),

b_del=new JButton("删除商品"),

b_xun=new JButton("查询商品"),

b_xiu=new JButton("修改商品"),

b_show=new JButton("显示商品清单");

JTextArea 显示区=new JTextArea(25,10);

ShowWin()

{super("仓库管理窗口");

hashtable=new Hashtable();

Container con=getContentPane();

JScrollPane pane=new JScrollPane(显示区);

显示区.setEditable(false);

JPanel save=new JPanel();

save.setLayout(new GridLayout(8,2));

save.add(new Label("输入代号:"));

save.add(代号文本框);

save.add(new Label("输入名称:"));

save.add(名称文本框);

save.add(new Label("输入库存:"));

save.add(库存文本框);

save.add(new Label("输入单价:"));

save.add(单价文本框);

save.add(new Label("单击添加:"));

save.add(b_add);

save.add(new Label("单击修改:"));

save.add(b_xiu);

save.add(new Label("输入查询代号:"));

save.add(查询文本框);

save.add(new Label("单击查询:"));

save.add(b_xun);

JPanel del=new JPanel();

del.setLayout(new GridLayout(2,2));

del.add(new Label("输入删除的代号:"));

del.add(删除文本框);

del.add(new Label("单击删除:"));

del.add(b_del);

JPanel show=new JPanel();

show.setLayout(new BorderLayout());

show.add(pane,BorderLayout.CENTER);

show.add(b_show,BorderLayout.SOUTH);

JSplitPane split_one,split_two;

split_one=new JSplitPane(JSplitPane.VERTICAL_SPLIT,save,del);

split_two=new

JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,split_one,show);

con.add(split_two,BorderLayout.CENTER);

JPanel xun=new JPanel();

xun.add(new Label("所得信息:"));

xun.add(查询信息文本框);

xun.setLayout(new GridLayout(2,1));

con.add(xun,BorderLayout.SOUTH);

b_add.addActionListener(this);

b_del.addActionListener(this);

b_xun.addActionListener(this);

b_xiu.addActionListener(this);

b_show.addActionListener(this);

}

public void actionPerformed(ActionEvent e)

{if(e.getSource()==b_add)

{String daihao=null,mingcheng=null;int kucun=0;float danjia=0.0f;

daihao=代号文本框.getText();mingcheng=名称文本框.getText();

kucun=Integer.parseInt(库存文本框.getText());

danjia=Float.valueOf(单价文本框.getText()).floatValue();

商品 goods=new 商品(daihao,mingcheng,kucun,danjia);

hashtable.put(daihao,goods);

try{FileOutputStream file=new FileOutputStream("goods.txt");

ObjectOutputStream out=new ObjectOutputStream(file);

out.writeObject(hashtable); out.close();

}

catch(IOException event){}

}

else if(e.getSource()==b_del)

{String daihao1=删除文本框.getText();

try{FileInputStream come_in=new FileInputStream("goods.txt");

ObjectInputStream in=new ObjectInputStream(come_in);

hashtable=(Hashtable)in.readObject(); //////

in.close();

}

catch(ClassNotFoundException event){}

catch(IOException event){}

商品 temp=(商品)hashtable.get(daihao1);

{hashtable.remove(daihao1);}

try{FileOutputStream file=new FileOutputStream("goods.txt");

ObjectOutputStream out =new ObjectOutputStream(file);

out.writeObject(hashtable);//

out.close();

}

catch(IOException event){}

}

//

else if(e.getSource()==b_xun)

{ String aa;

aa=查询文本框.getText();

查询信息文本框.setText(null);

try{FileInputStream come_in=new FileInputStream("goods.txt");

ObjectInputStream in =new ObjectInputStream(come_in);

hashtable=(Hashtable)in.readObject(); ////

in.close();

}

catch(ClassNotFoundException event){}

catch(IOException event){}

商品 a=(商品)hashtable.get(aa);

查询信息文本框.setText(" 代号:"+a.代号+" 名称:"+a.名称+" 库存:"+a.库存+" 单价:"+a.单价);

}

//

else if(e.getSource()==b_xiu)

{ String bb;

bb=代号文本框.getText();

try{FileInputStream come_in=new FileInputStream("goods.txt");

ObjectInputStream in=new ObjectInputStream(come_in);

hashtable=(Hashtable)in.readObject(); //////

in.close();

}

catch(ClassNotFoundException event){}

catch(IOException event){}

商品 temp=(商品)hashtable.get(bb);

{hashtable.remove(bb);}

try{FileOutputStream file=new FileOutputStream("goods.txt");

ObjectOutputStream out =new ObjectOutputStream(file);

out.writeObject(hashtable);//

out.close();

}

catch(IOException event){}

String daihao1=null,mingcheng1=null;int kucun1=0;float danjia1=0.0f;

daihao1=代号文本框.getText();mingcheng1=名称文本框.getText();

kucun1=Integer.parseInt(库存文本框.getText());

danjia1=Float.valueOf(单价文本框.getText()).floatValue();

商品 goods1=new 商品(daihao1,mingcheng1,kucun1,danjia1);

hashtable.put(daihao1,goods1);

try{FileOutputStream file=new FileOutputStream("goods.txt");

ObjectOutputStream out=new ObjectOutputStream(file);

out.writeObject(hashtable); out.close();

}

catch(IOException event){}

}

//

else if(e.getSource()==b_show)

{ 显示区.setText(null);

try{FileInputStream come_in=new FileInputStream("goods.txt");

ObjectInputStream in =new ObjectInputStream(come_in);

hashtable=(Hashtable)in.readObject(); ////

}

catch(ClassNotFoundException event){}

catch(IOException event){}

Enumeration enum=hashtable.elements();

while(enum.hasMoreElements())

{ 商品 te=(商品)enum.nextElement();

显示区.append("商品代号:"+te.代号+" ");

显示区.append("商品名称:"+te.名称+" ");

显示区.append("商品库存:"+te.库存+" ");

显示区.append("商品单价:"+te.单价+" ");

显示区.append("\n ");

}

}

}

}

public class LinkListFour

{public static void main(String args[])

{ ShowWin win=new ShowWin();

win.setSize(400,350);

win.setVisible(true);

win.addWindowListener(new WindowAdapter()

{public void windowClosing(WindowEvent e)

{ System.exit(0);}});

}

}

求JAVA大神!JAVA报错从发行版5开始."enum"为关键字.....

enum 是java的枚举类型,你这样写就相当于:

Integer int = 0;

这肯定是不行的

java枚举类怎么写

枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。

1、常量的使用

在JDK1.5之前,我们定义常量都是:public static fianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

1234567

package com; public enum Color { RED, GREEN, BLANK, YELLOW }

使用

123456789101112131415161718192021

package com; public class B { public static void main(String[] args) { System.out.println( isRed( Color.BLANK ) ) ; //结果: false System.out.println( isRed( Color.RED ) ) ; //结果: true } static boolean isRed( Color color ){ if ( Color.RED.equals( color )) { return true ; } return false ; } }

或者 switch 的使用

12345678910111213141516171819202122232425

package com; public class B { public static void main(String[] args) { showColor( Color.RED ); } static void showColor(Color color){ switch ( color ) { case BLANK: System.out.println( color ); break; case RED : System.out.println( color ); break; default: System.out.println( color ); break; } }}

2、自定义函数

package com; public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); private String name ; private int index ; private Color( String name , int index ){ this.name = name ; this.index = index ; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }

使用

package com; public class B { public static void main(String[] args) { //输出某一枚举的值 System.out.println( Color.RED.getName() ); System.out.println( Color.RED.getIndex() ); //遍历所有的枚举 for( Color color : Color.values()){ System.out.println( color + " name: " + color.getName() + " index: " + color.getIndex() ); } } }

结果

红色

1

RED name: 红色 index: 1

GREEN name: 绿色 index: 2

BLANK name: 白色 index: 3

YELLO name: 黄色 index: 4

总结:

1、枚举的本质是类,在没有枚举之前,仍然可以按照java最基本的编程手段来解决需要用到枚举的地方。枚举屏蔽了枚举值的类型信息,不像在用public static final定义变量必须指定类型。枚举是用来构建常量数据结构的模板,这个模板可扩展。枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。枚举的更多用法还需要在开发中去研究创造,Java5、Java6增加了不少新的特性,技术在升级,对程序员来说就要学习,如果你热爱java的话。否则别人用到新特性的代码你看不懂,那才叫郁闷。

2、枚举在Java家族中只占了很小的一块比重,所以我在项目中用枚举的地方不是很多,毕竟,一个项目是很多人开发维护的,用一个陌生的东西,会给其他的同事造成阅读困难。所以常量大都是用public static final 来定义的。

java的enum到底有什么用?

1.关于 Java Enum

Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来替代。有了 JavaEnum 之后,可以更贴近的表示这种常量。

2. 如何使用 Java Enum

简单的用法: JavaEnum 简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。如:

//性别

public enum SexEnum { 

  male , female ; 

}

//颜色

public enum Color { 

  RED , BLUE,GREEN,BLACK ; 

}

枚举对象里面的值都必须是唯一的。

可以通过 Enum 类型名直接引用该常量,如 SexEnum.male,Color.RED.

复杂用法: Java 为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象,看个下面的例子:

WeekDay.java

/**

 * @author admin

 * 2015-12-03

 * 定义一个枚举类型,代表星期一到星期日的7个缩写常量

 * 同时还定义了枚举类型的属性day,该属性可以是final,也可是变量

 * 同时还定义了该枚举类型的一个方法printDay

 */

public enum WeekDay {

Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday"), Fri(

        "Friday"), Sat("Saturday"), Sun("Sunday");

/**定义枚举类型自己的属性**/

private final String day;

 

private WeekDay(String day) {

     this.day = day;

}

/**定义枚举类型自己的方法**/

public static void printDay(int i){

     switch(i){

     case 1: System.out.println(WeekDay.Mon); break;

     case 2: System.out.println(WeekDay.Tue);break;

     case 3: System.out.println(WeekDay.Wed);break;

     case 4: System.out.println(WeekDay.Thu);break;

     case 5: System.out.println(WeekDay.Fri);break;

     case 6: System.out.println(WeekDay.Sat);break;

     case 7: System.out.println(WeekDay.Sun);break;

     default:System.out.println("wrong number!");

     }

}

 

public String getDay() {

     return day;

}

}

WeekDayTest.java

/**

 * @author admin

 * 2015-12-03

 * 测试枚举类型WeekDay.

 */

public class WeekDayTest {

  public static void main(String args[]) {

      for (WeekDay day : WeekDay.values()) {

         System.out.println(day + "====" + day.getDay());

      }

      WeekDay.printDay(5);

  }

}

输出结果为:

Mon====Monday

Tue====Tuesday

Wed====Wednesday

Thu====Thursday

Fri====Friday

Sat====Saturday

Sun====Sunday

Fri

3条大神的评论

  • avatar
    访客 2023-03-28 上午 08:37:34

    =new FileOutputStream("goods.txt");ObjectOutputStream out =new ObjectOutputStream(file);out.writeObject(hashtable);//out.clos

  • avatar
    访客 2023-03-28 下午 05:03:21

    (IOException event){}商品 temp=(商品)hashtable.get(daihao1);{hashtable.remove(daihao1);}try{F

  • avatar
    访客 2023-03-28 下午 05:56:29

    private Color( String name , int index ){ this.name = name ; this.index =

发表评论