LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 569|回复: 3

关于对象重复定义问题

[复制链接]
发表于 2005-1-23 22:42:40 | 显示全部楼层 |阅读模式
下面是我写的代码

运行结果如下:   结果使得我很迷惑
[root@localhost woxiede]# javac AdminHourold.java
AdminHourold.java:56: e is already defined in main(java.lang.String[])
        Emplogee e = (Emplogee)staff.get(i);
                 ^
AdminHourold.java:59: e is already defined in main(java.lang.String[])
        Manager e = (Manager)staff.get(staff.size());
                ^
2 errors


  1. import java.util.*;
  2. import javax.swing.*;

  3. public class AdminHourold
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.         ArrayList staff = new ArrayList();
  8.                  
  9.         String        input = JOptionPane.showInputDialog
  10.                 ("how much money for A take");
  11.         int k = Integer.parseInt(input);


  12.         input = JOptionPane.showInputDialog
  13.                 ("how much money for B take");
  14.         int k1 = Integer.parseInt(input);


  15.         input = JOptionPane.showInputDialog
  16.                 ("how much money for C take");
  17.         int k2 = Integer.parseInt(input);


  18.         input = JOptionPane.showInputDialog
  19.                 ("How much add ");
  20.         double add = Integer.parseInt(input);


  21.             input = JOptionPane.showInputDialog
  22.                 ("how much money for zg take");
  23.         int zgmoney = Integer.parseInt(input);


  24.             input = JOptionPane.showInputDialog
  25.                 ("how much money for zg add");
  26.         int zgadd = Integer.parseInt(input);


  27.         staff.add(new Emplogee("A",k));
  28.         staff.add(new Emplogee("B",k1));
  29.         staff.add(new Emplogee("C",k2));
  30.            staff.add(new Manager("D",zgmoney));

  31.             for(int i = 0;i < staff.size() - 1; i++)
  32.         {
  33.         [color=DarkRed]Emplogee e = (Emplogee)staff.get(i);[/color]
  34.         e.getAdd(add);
  35.         }
  36.    
  37.    [color=DarkRed]Manager e = (Manager)staff.get(staff.size());[/color]
  38.        e.getAdd(zgadd);

  39.         for(int i = 0;i < staff.size()-1; i++)
  40.         {
  41.         [color=DarkRed]Emplogee e = (Emplogee)staff.get(i);[/color]
  42.         System.out.println("name=" + e.getName() + "\nOmoney=" + e.getOmoney() + ",Nmoney=" + e.getNmoney());
  43.         }
  44.         [color=DarkRed]Manager e = (Manager)staff.get(staff.size());[/color]
  45.         System.out.println("name=" + e.getName() + "\nOmoney=" + e.getOmoney() + ",Nmoney=" + e.getNmoney());
  46.         }
  47. }
  48. class Emplogee
  49. {
  50.         public Emplogee (String n ,double s)
  51.         {        name = n;
  52.                 money = s;
  53.         }
  54.         public String getName()
  55.         {
  56.                 return name;
  57.         }
  58.         public double getOmoney()
  59.         {
  60.                 return money;
  61.         }
  62.         public double getNmoney()
  63.         {
  64.         return Hadd;
  65.         }
  66.         public  void  getAdd(double byPercent)
  67.         {
  68.                 double raise = money * byPercent / 100;
  69.                 Hadd = raise + money;
  70.         }
  71.         private String name;
  72.         private double money;
  73.         private double Hadd;
  74.        
  75. }


  76. class Manager extends Emplogee
  77. {
  78.    /**
  79.       @param n the employee's name
  80.       @param s the onmeny
  81.    */
  82.    public Manager(String n, double s)
  83.    {
  84.       super(n, s);
  85.       
  86.    }

  87.   public void getAdd(double byPercent)
  88.    {
  89.       double baseSalary = super.getOmoney();
  90.       double raise = baseSalary * byPercent /100;
  91.       Hadd = baseSalary + raise;
  92.    }

  93.    private double baseSalary;
  94.    private double Hadd;
  95.    private double raise;
  96. }
复制代码
发表于 2005-1-23 23:12:22 | 显示全部楼层
你的迷茫是??

不明白你为什么要循环生成同名对象! :ask
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-24 11:54:21 | 显示全部楼层
Emplogee e = (Emplogee)staff.get(i)

staff.get(i) 是Object亚~~~所以要每次把他定义为Emplogee类~~`

我的迷茫就是:
这段代码以前是可以运行的,但是我改了下就运行不了了~~``很郁闷!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-24 11:56:16 | 显示全部楼层
这是  原来可以运行的代码


  1. mport javax.swing.*;
  2. import java.util.*;

  3. public class AdminHour
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.         ArrayList staff = new ArrayList();
  8.                  
  9.         String        input = JOptionPane.showInputDialog
  10.                 ("how much money for A take");
  11.         int k = Integer.parseInt(input);


  12.         input = JOptionPane.showInputDialog
  13.                 ("how much money for B take");
  14.         int k1 = Integer.parseInt(input);


  15.         input = JOptionPane.showInputDialog
  16.                 ("how much money for C take");
  17.         int k2 = Integer.parseInt(input);


  18.         input = JOptionPane.showInputDialog
  19.                 ("How much add ");
  20.         double add = Integer.parseInt(input);


  21.             input = JOptionPane.showInputDialog
  22.                 ("how much money for zg take");
  23.         int zgmoney = Integer.parseInt(input);


  24.             input = JOptionPane.showInputDialog
  25.                 ("how much money for zg add");
  26.         int zgadd = Integer.parseInt(input);



  27.         staff.add(new Emplogee("A",k ));
  28.         staff.add(new Emplogee("B",k1));
  29.         staff.add(new Emplogee("C",k2));
  30.            staff.add(new Manager("D",zgmoney));
  31.               staff.get(3).setBonus(zgadd);

  32.     for(int i = 0;i < staff.size(); i++)
  33.         {
  34.                 Emplogee e = (Emplogee)staff.get(i);
  35.                 staff.get(i).getAdd(add);
  36.         }
  37.     for(int i = 0;i < staff.size(); i++)
  38.                 {
  39.                 Emplogee e = (Emplogee)staff.get(i);
  40.                 System.out.println("name=" + e.getName() + "\nOmoney=" + e.getOmoney() + "\nNmoney=" + e.getNmoney());
  41.                 }
  42.         }
  43. }
  44. /**
  45. abstract
  46. **/
  47.   class Emplogee
  48. {
  49.         public Emplogee (String n ,double s)
  50.         {        name = n;
  51.                 money = s;
  52.         }
  53.         public String getName()
  54.         {
  55.                 return name;
  56.         }
  57.         public double getOmoney()
  58.         {
  59.                 return money;
  60.         }
  61.         public double getNmoney()
  62.         {
  63.         return Hadd;
  64.         }
  65.         public void  getAdd(double byPercent)
  66.         {
  67.                 double raise = money * byPercent / 100;
  68.                 Hadd = raise + money;
  69.         }
  70.         private String name;
  71.         private double money;
  72.         private double Hadd;
  73.        
  74. }


  75. class Manager extends Emplogee
  76. {
  77.    /**
  78.       @param n the employee's name
  79.       @param s the onmeny
  80.    */
  81.    public Manager(String n, double s)
  82.    {
  83.       super(n, s);
  84.       bonus = 0;
  85.    }

  86.    public double getSalary()
  87.    {
  88.       double baseSalary = super.getOmoney();
  89.       return baseSalary + bonus;
  90.    }

  91.    public void setBonus(double b)
  92.    {
  93.       bonus = b;
  94.    }

  95.    private double bonus;
  96. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表