qq_51243331 2022-06-20 00:57 采纳率: 100%
浏览 32
已结题

主类如何使用普通类的方法中得到的数组

Java:请问如何在主类使用普通类通过赋值后得到的某个数组,在普通类中返回数组的值好像不可行哎,求解答!谢谢!
普通类代码如下

public class menu {
    public double price;
    
    public double getPrice() throws IOException {
        @SuppressWarnings("resource")
        BufferedReader br = new BufferedReader(new FileReader("menu.txt")); 
        br.readLine();
        String str;
        int i=0;
        String[] priceArray=new String[]{};  
        double[] price=new double[4];
        while((str=br.readLine())!=null){
            priceArray=str.split("\\s+");
            for(int j=0;j<3;j++) {
                if(j==2) {
                    price[i]=Double.parseDouble(priceArray[j]);
                    i++;}
            if(i==4) break;
        }
}
        return price[4];
}

主类相关代码如下:

public static void main(String[] args) throws IOException{
……
if (confirm=='n') {
                            mu.getPrice();
                            System.out.println(mu.getPrice());
                            System.out.println("您今晚的总消费金额为:"+(num1*price[0]+num2*price[1]+num3*price[2]+num4*price[3]));
}
}

  • 写回答

1条回答 默认 最新

  • 一头小山猪 一头小山猪(个人IP)官方账号 2022-06-20 01:31
    关注

    你的这个price数组已经在主类中定义过了吗?因为你在调用的方法中重新new了一个price数组,而你只返回了一个price[4]的值。
    你现在可以将这个方法的返回值类型改为double[],直接return整个数组,然后在main方法里面进行接收:
    double[] prices = mu.getPrice();

    如果你的main方法就在这个类下的话(在同一个类中),可以定义一个全局变量的double数组,这样可以省去传参的麻烦。因为方法都是在同一个类下,所以定义的全局变量(成员变量)可以直接使用。

    有帮助请采纳,还有不懂的可以继续追问~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月27日
  • 已采纳回答 6月21日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址