作者chinsun ()
看板java
標題[問題] 新手物件導向問題
時間Thu Oct 18 01:50:54 2018
大家好,我在國外求學最近開始學習java和物件導向的觀念
但第一個作業就遇到問題了QQ 助教的話也聽不太懂
希望有人可以指點我一下
題目要寫一個產生質數的程式
第一個方法是要寫一個sieve方法
當sieve(100)時,要產生兩個陣列,一個是100以下的所有數字,除了前兩項
另一個是布林陣列,前兩項是False,之後都為true
測試的程式如下,應該要印出2-99的整數
try
{
sieve = new Sieve(100);
}
catch (IllegalArgumentException oops)
{
System.out.println("Sieve size must be at least 2.");
}
// This must print integers from 2 to 99, separated by blanks.
System.out.println(sieve);
以下是我寫的程式
public class Sieve {
private boolean[] numbers;
private Sieve[] sieve;
private int max;
public Sieve(int max) {
this.max=max;
numbers=new boolean[max];
sieve = new Sieve[max];
if(max<2)
throw new IllegalArgumentException();
else {
numbers[0]=false;
numbers[1]=false;
for(int i=2;i<max;i++) {
numbers[i]=true;
X sieve[i-2]=i; //這邊會出現type mismatch
//的問題,但我不知道怎麼辦QQ
}}}}
請問可以告訴我應該要改正哪裡嗎,感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 131.212.251.240
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1539798656.A.3EA.html
1F:→ gama79530: 你宣告的sieve是一個裝Sieve物件的陣列,你要指派一個i 10/18 02:20
2F:→ gama79530: nt給這個之陣列的某個位置當然不行 10/18 02:20
※ 編輯: chinsun (131.212.251.240), 10/18/2018 02:23:22
對耶!會變成內容是sieve的陣列,但我如果用int陣列的話,要怎麼在呼
叫方法的時候讓int而不是布林陣列出現呢
※ 編輯: chinsun (131.212.251.240), 10/18/2018 02:28:24
3F:→ pzyc79: 為什麼這種的都可以出國念書 家裡有錢真好? 10/18 03:10
4F:→ chinsun: 現在才發現題目後面還有一個toString的方法,這樣就解決 10/18 10:12
5F:→ chinsun: 了,歹勢驚擾大家 10/18 10:13
6F:→ chinsun: 樓上的大大,我對於自己的本科還是有一定專業度,平常都 10/18 10:15
7F:→ chinsun: 是寫硬體的程式居多,想挑戰軟體的課,但腦袋轉不太過來 10/18 10:15
8F:→ chinsun: 我沒浪費家裡的錢錢啦QQ 10/18 10:16
9F:→ PTTTTTTTT: 3樓不需要這樣吧 10/18 11:42
10F:→ motherboard: 也許這就是為什麼沒辦法出國念書? 10/18 14:53
11F:推 evo1994: 你連類別方法建構子都不太了解,建議有一點概念再來實作 10/19 01:13
12F:→ evo1994: 會比較好喔! 10/19 01:13
13F:推 iiiii: 想像物件是記憶體裡的一塊,有個標籤插著標示,個人覺得寫 10/20 10:20
14F:→ iiiii: 過C對於Java這種OO的理解是有幫助的 10/20 10:20
15F:→ Kennyq: 真要深入理解記憶體,是學組合 10/20 19:11
16F:→ iiiii: 真的要學記憶體,要不要從半導體製程開始? 10/21 09:23
17F:推 w0005151: 寫硬體的嗎? 那你應該對pointer很熟,Java中的進階型別 10/21 22:33
18F:→ w0005151: 的變數其實都是pointer,不是物件本身 10/21 22:33
19F:推 Kennyq: 業界講軟體有人會講講到半導體嗎 10/22 14:04
20F:→ Kennyq: 業界講軟體有人會講到半導體嗎 10/22 14:05
21F:→ Kennyq: 去看看java的bytecode是接近什麼語言吧 10/22 14:08
22F:推 iiiii: 懂物件就要懂記憶體,懂記憶體就要懂組語,懂組語就要懂指 10/24 11:24
23F:→ iiiii: 令集,懂指令集就要懂CPU,懂CPU就要懂IC設計,懂IC設計就要 10/24 11:24
24F:→ iiiii: 懂半導體,這就是你的邏輯不是嗎? 10/24 11:24
25F:→ Kennyq: 初學者請自己判斷,看要學組合還是半導體 10/24 13:54
26F:→ Kennyq: 再強調一下,這是java版 10/24 13:56