【问题标题】:Assigning value to an array of other class by creating an object通过创建对象为其他类的数组赋值
【发布时间】:2015-06-27 14:35:10
【问题描述】:
import java.util.Scanner;

public class product
{
int productId[];
String productName,productType[];
float productPrice[];

public static void main(String...args)
{
    shop ob=new shop();
    ob.startshop();
}
}

class shop
{   
product obj;

void startshop()
{
    obj=new product();
    obj.productId()={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010};
    obj.productName={"Cadbury","Parker Vector","Nescafe","kissan                   jam","Herbal oil","Garnier man's","Lays chips","Bourn bourn biscuits","Bournvita","Pepse"};
        obj.productType={"Chocolate","Stationary","Coffee","Jam","Oil","Face wash","chips","Biscuits","Health Supplement","Cold Drink"}
        obj.productPrice={20,150,80,65,30,79,10,20,140,24};
        Scanner oj=new Scanner(System.in);
        System.out.println(obj.productName);
        boolean c=true;
        while(c==true)
        {
            System.out.println("Please press\n1 for view all products\n2 for         view product detail\n3 to exit shop");
            int ch=oj.nextInt();
            switch(ch)
            {
                case 1:viewAllProducts();
                    break;
                case 2:System.out.println("Enter product id to search      starting from 1001 to 1010");
                    int i=oj.nextInt();
                    viewProductDetail(i);
                    break;
                    case 3:System.out.println("You are out of shop :)");
                    c=false;
                    break;
            }
        }
    }
    void viewAllProducts()
    {   System.out.println("ID\t\tNAME\t\tTYPE\t\tPRICE");
        for(int i=0;i<10;i++)
        {
            System.out.println(obj.prductId[i]+"\t\t"+obj.productName[i]+"\t\t+"+obj.product    Type[i]+"\t\t"+obj.productPrice[i]);
        }
    }
    void viewProductDetail(int id)
    {
        int k=15;
        for(int i=0;i<10;i++)
        {
        if(obj.productId[i]==id)
        k=i;
        }
        if(k<10)
        {
            System.out.println("Product id "+obj.productId[k]);
            System.out.println("Product name "+obj.productName[k]);
            System.out.println("Product type "+obj.productType[k]);
            System.out.println("Product price "obj.productPrice[k]);
        }
    }
}       

在此代码中,由于以下几行代码出错

obj.productId()={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010}; obj.productName={"Cadbury","Parker Vector","Nescafe","kissan 果酱”,“草药油”,“卡尼尔人”,“Lays薯条”,“Bourn bourn” 饼干","Bournvita","百事"}; obj.productType={"巧克力","文具","咖啡","果酱","油","面 洗","薯条","饼干","保健品","冷饮"}; obj.productPrice={20,150,80,65,30,79,10,20,140,​​24};

如果我使用错误的语法来初始化其他类的实例变量,请告诉我。

【问题讨论】:

    标签: java arrays class object


    【解决方案1】:

    是的,您在这里使用了错误的语法。 obj.productId() 将是一个函数,但在您的情况下,它是 Product 类的参数,只需编写 obj.productId

    但是你必须记住,你不能在创建参数后使用int array[] = {example} 语法。当你初始化你的参数时,你必须使用它。

    你可以的

    float productPrice[] = {"0.0","1,1","2.2"};
    

    但不是

    float productPrice[];
    productPrice = {"0.0","1,1","2.2"};
    

    希望对你有帮助:)

    【讨论】:

    • 还有其他方法可以让我在课堂商店中的数组增值吗?
    • 如果您想使用数组,您可以在“产品”类中为自己编写一个方法,例如“addToProductPrice(float price)”。或者,您可以使用 ArrayList 而不是数组。
    【解决方案2】:

    obj.productId()={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010};这个语法错误,productId不是函数,不带括号使用。

    示例 -

    obj.productId= new int[]{1001,1002,1003,1004,1005,1006,1007,1008,1009,1010};
    

    【讨论】:

    • product.java:20: 错误:表达式 obj.productId={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010 } 的非法开始; ^ product.java:20: error: not a statement obj.productId={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010 }; ^ product.java:20: 错误:';'预期 obj.productId={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010 };
    • 请尝试最新的代码。里面有一个new int[]
    【解决方案3】:

    我已通过以下方式修改了您的问题,并且得到了预期的结果。请通过。

    package product;
    
    /**
    *
    * @author sunil
    */
    
    import java.util.*;
    
    
    public class product
    {
    int productId[];
    String productName[],productType[];
    int productPrice[];
    
    public static void main(String args [])
    {
    shop ob = new shop();
    ob.startshop();
    }
    
    }
    
    class shop{   
    
    product obj;
    
    void startshop()
    {
    obj = new product();
    obj.productId = new int[]  
    {1001,1002,1003,1004,1005,1006,1007,1008,1009,1010};
    obj.productName= new String[]{"Cadbury","Parker Vector","Nescafe","kissan  
    jam","Herbal oil","Garnier man's","Lays chips","Bourn bourn 
    biscuits","Bournvita","Pepsi"};
        obj.productType = new String[] 
    {"Chocolate","Stationary","Coffee","Jam","Oil","Face 
    wash","chips","Biscuits","Health Supplement","Cold Drink"};
        obj.productPrice = new int[]{20,150,80,65,30,79,10,20,140,24};
        Scanner oj=new Scanner(System.in);
        System.out.println(Arrays.toString(obj.productId));
        System.out.println(Arrays.toString(obj.productName));
        System.out.println(Arrays.toString(obj.productType));
        System.out.println(Arrays.toString(obj.productPrice));
        boolean c=true;
        while(c==true)
        {
            System.out.println("Please press\n1 for view all products\n2 for 
        view product detail\n3 to exit shop");
            int ch=oj.nextInt();
            switch(ch)
            {
                case 1:viewAllProducts();
                    break;
                case 2:System.out.println("Enter product id to search starting 
        from 1001 to 1010");
                    int i=oj.nextInt();
                    viewProductDetail(i);
                    break;
                    case 3:System.out.println("You are out of shop :)");
                    c=false;
                    break;
              }
           }
        }
        void viewAllProducts()
        {   System.out.println("ID\t\tNAME\t\tTYPE\t\tPRICE");
        for(int i=0;i<10;i++)
        {
            System.out.println(obj.productId[i]+"\t\t"+obj.productName[i] 
    +"\t\t+"+obj.productType[i]+"\t\t"+obj.productPrice[i]);
        }
    }
    void viewProductDetail(int id)
    {
        int k=15;
        for(int i=0;i<10;i++)
        {
        if(obj.productId[i]==id)
        k=i;
        }
        if(k<10)
        {
            System.out.println("Product id "+obj.productId[k]);
            System.out.println("Product name "+obj.productName[k]);
            System.out.println("Product type "+obj.productType[k]);
            System.out.println("Product price "+obj.productPrice[k]);
          }
       }
    }       
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      相关资源
      最近更新 更多