2015-06-26 4 views
-5

Пожалуйста, помогите. Я не знаю, почему такой единственный метод делает ошибку, включая неопределенный метод для этого типа класса. Я использовал это раньше, без ошибок. Я определяю два класса один, содержащий метод:Неопределенный метод почему?

import java.util.Scanner; 
public class f1 { 
    private int h; 

    public static Scanner sc = new Scanner(System.in); 

    public void main(String args[]) 
    { 
     System.out.println("Set health"); 
     h = sc.nextInt(); 
     l(h); 
    } 
} 

public class f2 { 

    private int health; 
    public void l(int h) 
    { 
     health = h; 
     System.out.println(health); 
    } 
} 
+0

Посмотрите методы экземпляра. – Jashaszun

ответ

0

Ваша проблема заключается здесь:

public void main(String args[]) 
    { 
     System.out.println("Set health"); 
     h = sc.nextInt(); 
     l(h); //Root of your problems 
    } 

метод l() не определен под действие класса f1. Это значит, что f1 не понимаю, что такое l(). Чтобы сообщить class f1, вы можете:

public void main(String args[]) 
    { 
     System.out.println("Set health"); 
     h = sc.nextInt(); 

     f2 obj = new f2(); //create an object of class f2 
     obj.l(h); //Now they know l() comes from an f2 object 
    } 
+0

классный. Он работал. Спасибо. – MLF3

+0

@ MLF3 приветствуем, вы можете нажать «тик» рядом со своим сообщением, чтобы принять мое решение. – user3437460

0

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

Ваш метод l (int) находится в другом классе. Как бы компилятор знал, чтобы найти его там, а не в каком-то другом классе в вашей программе?

В будущем: если у вас есть сообщение об ошибке, отправьте его; в этом случае я знаю, как выглядит сообщение об ошибке, так что это было необязательно, но в целом на этом форуме недостаточно сказать, что говорит сообщение, вы должны опубликовать текст напрямую.

+0

что я могу сделать? точное сообщение: «Метод l (int) не определен для типа f1 – MLF3

+0

Ну, вы можете посмотреть, где вы думаете, l (int) определен, и посмотреть сообщение об ошибке, чтобы узнать, где компилятор считает, что он определен. Я намеренно неполно, если вы не можете получить ответ на это по своему усмотрению, у вас будет очень трудное время для прохождения любого курса программирования, самообучения или иным образом. – arcy

+0

самоучка Я думаю .I забыл использовать объект. Пользователь меня опоздал – MLF3

Смежные вопросы