2010-11-16 54 views
2

我对此感到尴尬,当然我只是忘记了一些简单的东西。如何在Java中调用对象?

,如果这是body.java

public class body{ 

    public static void main(String args[]) 
    { 
     int i = 0; 
    part aPart = new part(i); 
    aPart.add(); 
    } 
} 

,这是part.java

public class part{ 

    private int i; 
    public int part(int i) 
    { 
     this.i = i+10; 
    } 
    public add() 
    { 
     i = i++; 
     System.out.println(i); 
} 

为什么当我运行javac编译body.java,它说未知符号的一部分?

+0

在同这些是包? – 2010-11-16 17:58:59

+0

如果您希望为您编译某些内容,并希望比Eclipse更简单轻便,请查看http://www.drjava.org。 – Brendan 2010-11-16 18:03:36

+2

总是以大写形式定义Java类中的第一个字符(Body,Part) – CoolBeans 2010-11-16 18:04:21

回答

4

因为零件是你的构造函数(你不需要在他的答案中声明@amir的返回类型)。你应该做

public part(int i) {...} 

作注,Java约定是具有类名称的大写,所以您应将文件更改为Part.java,类声明为“部分”,和你的构造太...

编辑 - @coolbeans答案也是正确的 - 如果你的问题中的代码是正确的,你错过了一个右大括号。

+0

是的,我注意到大小写问题。我在一个更大的程序中遇到了问题,所以我认为最好是让这个测试程序看看我忘了什么。但是,经过比较,我发现了这个问题,我正在进行编辑,并且做了太多! – Blackbinary 2010-11-16 18:07:57

1

javac *.java

+0

这是直接的问题......但'部分'构造函数也是错误的 – Thorarin 2010-11-16 18:04:52

+0

一次一个错误... – 2010-11-16 18:17:30

0

为了详细阐述hvgotcodes的说法,构造函数没有返回类型。 Java类的构造函数不是一个普通的方法。它的唯一目的是实例化它所属类的一个对象。

+0

我在你的答案中引用了你的答案。 – hvgotcodes 2010-11-16 18:02:59

+0

完美无瑕。 – 2010-11-16 18:04:44

1

更改部件类象下面这样: -

public class Part{ 

    private int i; 
    public Part(int i) 
    { 
     this.i = i+10; 
    } 
    public void add() 
    { 
     i = i++; 
     System.out.println(i); 
    } 
} 

,并调用它是这样的: -

int i = 0; 
Part aPart = new Part(i); 
aPart.add(); 
+0

我在我的答案中引用了你的答案...... – hvgotcodes 2010-11-16 18:04:23

+0

确实是hvgotcodes。 – CoolBeans 2010-11-16 18:06:08

+0

谢谢,这帮助我在我编辑的更大程序中找到问题。 – Blackbinary 2010-11-16 18:08:26

0

您需要声明构造

public part(int i) { 
    this.i = i; 
}