看板 java 關於我們 聯絡資訊
※ 引述《starlichin (白星羽)》之銘言: : 我想寫一個array的constructor還有一個average的method去計算其平均值 : 程式碼如下: : 但執行後會出現inner class cannot have static declaration的錯誤 : 我是初學者看不出問題出在哪 :( : 麻煩版上的強者解答了~ public class MainClass { public static void main(String[] args) { int[] nums = { 2, 4, 6, 8, 10, 12 }; MainClass mainClass = new MainClass(); InnerClass innerClass = mainClass.new InnerClass(nums); System.out.println(innerClass.mean()); } private class InnerClass { private int[] nums; public InnerClass(int[] nums) { this.nums = nums; } public double mean() { double sum = 0.0; for (int num : nums) { sum += (double) num; } return (sum / nums.length); } } } 根據你的例子改寫的小程式 這個class包class的用法是稱作inner class或nested class 平常開發大型專案時是不太會使用這種用法 畢竟會讓程式看起來太過複雜 但是作為了解Java的特性 試試看倒是不錯 你的問題很簡單 error message就已經告知你語法上哪裡有錯 "inner class cannot have static declaration" 先了解這串字的意義 再來修改就可以了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.2.213 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1505494009.A.A17.html ※ 編輯: zephyrhymn (111.248.2.213), 09/16/2017 02:29:52
starlichin: 謝謝!! 我本來想讓constructor來決定array裡面的值 09/16 18:29
hpbl: 要不要考慮用Integer[] 再轉成stream? 09/17 06:41
zephyrhymn: 你可以參考一下文章#1MO0LHVx 判斷是否使用 09/17 11:38
wtfaha: 真 09/19 11:13