2015-12-08 2 views
0
public class CodingBat { 
    public static void main(String[] args) { 
     System.out.println(sumDouble(5,5)); 
    } 

    public int sumDouble(int a, int b) { 
     if(a ==b) { 
      return 2*a + 2* b; 
     } else{ 
      return a + b; 
     } 
    } 
} 

Так что я сделал этот код, и я очень смущен, почему он не работает, если я не пишу статическим между общественным ИНТОМ sumDouble, потому что я практиковал на codingBat, и ответить на вопрос, что они не связаны со статикой, но тогда как они проверяют код. Используют ли они главный? Я имею в виду, что вам нужно, чтобы код работал правильно? Насколько я знаю, static означает, что каждый объект этого класса будет иметь одинаковое значение. Но я не вижу релевантности этой ошибки.Java статические основные также codingBat

«Невозможно сделать статическую ссылку на не-статический метод»

Спасибо за вашу помощь: D

+0

** ** статический контекст, не может получить доступ к ** нестатические ** методы. –

+0

Вы не можете вызвать нестатический метод из статического метода. Если вы хотите вызвать свой метод без статического модификатора, вам нужно создать экземпляр CodingBat: 'new CodingBat(). SumDouble (5, 5);' – Cir0X

+0

Итак, ваш вопрос: как они тестируют код, который я пишу на сторонний веб-сайт? –

ответ

1

, и я очень смущен, почему он не работает, если я не пишу статического между общественным ИНТ sumDouble,

Да, static требуется

Поскольку main method is static и sumDouble() method is not, вы не можете вызвать метод без создания объекта класса. Вы не можете ссылаться на нестатические элементы из статического метода.

Либо сделайте метод static, либо создайте объект, как показано ниже, а затем метод доступа.

CodingBat obj = new CodingBat(); 
System.out.println(obj.sumDouble(5,5)); 

См here более

0

Либо вы называете это через статический контекст, то есть, как вы делаете (или из другого класса, по: ClassName.methodName();)

Или, вы должны назвать его как метод экземпляра, который это, если вы не объявить его static.Then, однако, вам нужен экземпляр для вызова через:

public static void main(String[] args){ 
     CodingBat cB = new CodingBat(); 
     System.out.println(cB.sumDouble(5,5)); 
    } 
0

Вам нужно создать объект для того, чтобы использовать этот метод

public class CodingBat { 
    public static void main(String[] args){ 
     CodingBat obj = new CodingBat(); 
     System.out.println(obj.sumDouble(5,5)); 
    } 
    public int sumDouble(int a, int b) { 
     if(a ==b){ 
      return 2*a + 2* b;} 
     else{ 
      return a + b;} 
    } 

}

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