作者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/cn.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