[問題] 新手物件導向問題

作者: chinsun   2018-10-18 01:50:54
大家好,我在國外求學最近開始學習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
}}}}
請問可以告訴我應該要改正哪裡嗎,感謝!
作者: Kennyq (舞光十射~*)   2018-10-22 14:04:00
業界講軟體有人會講講到半導體嗎業界講軟體有人會講到半導體嗎去看看java的bytecode是接近什麼語言吧
作者: gama79530 (Perfect Man)   2018-10-18 02:20:00
你宣告的sieve是一個裝Sieve物件的陣列,你要指派一個int給這個之陣列的某個位置當然不行
作者: pzyc79   2018-10-18 03:10:00
為什麼這種的都可以出國念書 家裡有錢真好?
作者: chinsun   2018-10-18 10:12:00
現在才發現題目後面還有一個toString的方法,這樣就解決了,歹勢驚擾大家樓上的大大,我對於自己的本科還是有一定專業度,平常都是寫硬體的程式居多,想挑戰軟體的課,但腦袋轉不太過來我沒浪費家裡的錢錢啦QQ
作者: PTTTTTTTT (1P8T)   2018-10-18 11:42:00
3樓不需要這樣吧
作者: motherboard (媽的Ball)   2018-10-18 14:53:00
也許這就是為什麼沒辦法出國念書?
作者: evo1994 (Evo)   2018-10-19 01:13:00
你連類別方法建構子都不太了解,建議有一點概念再來實作會比較好喔!
作者: iiiii (I take 5)   2018-10-20 10:20:00
想像物件是記憶體裡的一塊,有個標籤插著標示,個人覺得寫過C對於Java這種OO的理解是有幫助的
作者: Kennyq (舞光十射~*)   2018-10-20 19:11:00
真要深入理解記憶體,是學組合
作者: iiiii (I take 5)   2018-10-21 09:23:00
真的要學記憶體,要不要從半導體製程開始?
作者: w0005151 (藍廳)   2018-10-21 22:33:00
寫硬體的嗎? 那你應該對pointer很熟,Java中的進階型別的變數其實都是pointer,不是物件本身
作者: iiiii (I take 5)   2018-10-24 11:24:00
懂物件就要懂記憶體,懂記憶體就要懂組語,懂組語就要懂指令集,懂指令集就要懂CPU,懂CPU就要懂IC設計,懂IC設計就要懂半導體,這就是你的邏輯不是嗎?
作者: Kennyq (舞光十射~*)   2018-10-24 13:54:00
初學者請自己判斷,看要學組合還是半導體再強調一下,這是java版

Links booklink

Contact Us: admin [ a t ] ucptt.com