首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >员工计划。JAVA基础知识

员工计划。JAVA基础知识
EN

Stack Overflow用户
提问于 2011-11-16 16:08:33
回答 6查看 1.8K关注 0票数 0

我正在写一个简单的启动java程序。我面临的问题是公司名称没有正确添加。

代码语言:javascript
复制
public class Company {
    public static BufferedReader br;
    public static BufferedReader br1;
    public static String numberOfCompanies;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        CompanyDetails qw = new CompanyDetails();

        try{
            //Scanner in = new Scanner(System.in);
            br = new BufferedReader(new InputStreamReader(System.in));
            br1 = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Enter number of companies: ");
            numberOfCompanies = br.readLine();
            int G = Integer.parseInt(numberOfCompanies);

            for (int i = 1; i <= G; i++) {
                qw = new CompanyDetails();
                System.out.println("Enter name of the company: ");
                String company = br1.readLine();
                qw.company(company, i);
            }
            for (int i = 0; i <= G; i++) {
            qw.companySummary(G);
            }
        } catch (IOException io) {
            io.printStackTrace();
        }

    }   
}

class CompanyDetails {
    String company, name;
    public String input;
    public static BufferedReader br;
    public double iE;
    public static String numberOfCompanies;
    String nameOfCompany;
    String[] nameofCompany1 = new String[100];
    int ir,i,employee;
    ArrayList<String> bulk = new ArrayList<String>();

    public String[] company(String input, int i) {
        // TODO Auto-generated method stub
        //ArrayList bulk = new ArrayList();
        //for(int ith = i; ith<= 2; i++){
        nameOfCompany = i+input;
        bulk.add(nameOfCompany);
        bulk.add(nameOfCompany);
    //  }
        return nameofCompany1;
    }

    public void employee(double d) {
        // TODO Auto-generated method stub
        ir = (int)d;
    }

    public void companySummary(int G) {

        System.out.println("Number of companies: " + G);
        System.out.println("Name of company: " +bulk +" ");
        System.out.println("Number of employees: "+ir); 
    }   
}

我得到的输出是

为什么我在数组列表的第一位没有得到234 ??

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-16 16:15:16

您将在循环的每次迭代中创建一个新的CompanyDetails对象,这是通过丢失先前的对象来实现的:

代码语言:javascript
复制
for (int i = 1; i <= G; i++) {
   qw = new CompanyDetails();

您已经在main方法的开头创建了一个CompanyDetails对象:

代码语言:javascript
复制
CompanyDetails qw = new CompanyDetails();

因此,您不必在for循环中再次执行此操作。

票数 3
EN

Stack Overflow用户

发布于 2011-11-16 16:15:13

代码语言:javascript
复制
public String[] company(String input, int i) {

nameOfCompany = i+input;
bulk.add(nameOfCompany);
bulk.add(nameOfCompany); .// Why are you adding nameOfCompany twice .
return nameofCompany1;    //Why are you returning nameofCompany1 which is null here 

}

代码语言:javascript
复制
 qw = new CompanyDetails();  //this line should be out of the loop.

Naming Convention上工作。请提供更多关于您想要做什么以及您期望的输出的详细信息。

票数 2
EN

Stack Overflow用户

发布于 2011-11-16 16:15:41

看一下代码片段:qw = new CompanyDetails();是按循环实例化的。

它应该是:

代码语言:javascript
复制
 qw = new CompanyDetails();
 for (int i = 1; i <= G; i++) {
  ...
 }

正如@CodeBuzz指出的:删除company()方法中的bulk.add(nameOfCompany);,也不要迭代qw.companySummary(G);方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8148471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档