2010-11-16 2 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

ли они в то же самое пакет? –

+0

Если вы хотите что-то, что позаботится о компиляции для вас, и вы хотите что-то более простое и легкое, чем Eclipse, посмотрите http://www.drjava.org. – Brendan

+2

Всегда определяйте первый символ в классе Java в верхнем регистре (Тело, часть) – CoolBeans

ответ

4

потому что часть вашего конструктора (вы не объявляете тип возврата, как сказал @amir в своем ответе). Вы должны сделать

public part(int i) {...} 

как примечание, Java конвенция должна иметь имена классов с большой буквы, так что вы должны изменить файл Part.java, ваше объявление класса в «Part», и ваш конструктор тоже ...

EDIT - правильный ответ @coolbeans - если ваш вопрос в правильном вопросе, вам не хватает закрывающей скобки.

+0

Да, я заметил проблему с капитализацией. У меня проблема в гораздо более крупной программе, поэтому я подумал, что лучше попробовать и сделать эту тестовую программу, чтобы увидеть, что я забыл. Я нашел проблему, хотя, сравнив, я делал изменения и делал слишком много! – Blackbinary

1

javac *.java?

+0

Это непосредственная проблема ... но конструктор 'part' также неверен – Thorarin

+0

Одна ошибка за один раз ... –

0

И, чтобы уточнить, что говорят hvgotcodes, конструкторы не имеют типа возврата. Конструктор класса Java не является обычным методом. Единственная цель - создать экземпляр объекта класса, к которому он принадлежит.

+0

Я ответил на ваш ответ в своем ответе, если с вами все в порядке. – hvgotcodes

+0

Отлично отлично. –

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

+0

Уверенная вещь hvgotcodes. – CoolBeans

+0

спасибо, что помогло мне найти проблему в моей большой программе, которую я редактировал. – Blackbinary

0

Вы должны объявить конструктору

public part(int i) { 
    this.i = i; 
} 
Смежные вопросы