java - 通过创建对象为其他类的数组赋值

标签 java arrays class object

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 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};

请告诉我我是否使用了错误的语法来初始化其他类的实例变量。

最佳答案

是的,您在这里使用了错误的语法。 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"};

希望这对你有帮助:)

关于java - 通过创建对象为其他类的数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31089868/

相关文章:

java - 如何在EAP 6.3中的persistence.xml中添加2个DB

java - Spring 中的单例与 Autowired 字段

javascript - Blazor 到 Javascript 字节数组互操作

ruby - 将当前类属性注入(inject)新类的构造函数

c++ - 在类中使用 std::chrono::high_resolution_clock 播种 std::mt19937 的正确方法是什么?

Java - 根据条件将 for 循环计数器转回原处

java - startActivityForResult 两次

ios - swift : Process UIImage data for use in Firebase custom TFLite model

c - 为什么会出现段错误(核心已转储)?

c# - 命名空间 bla 已经包含(我的部分)类的定义