[问题] 新手物件导向问题

楼主: 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