2013-01-20 4 views
0

Я пытаюсь использовать метод из другого класса, но я думаю, что я не могу использовать конструктор здесь является первым классом:Использование метод из другого класса без конструктора

public class Rules { 
    public Rules(int size) { 
     //body 
    } 

    public void methodINeed() { 

    } 
} 

и я хочу использовать метод в нем в моем втором классе, , но поскольку, если я использую конструктор, я должен дать int, который в основном закручивает мои вычисления, я не знаю, что делать, что такое мой возможности здесь?

+0

Может methodIneed быть статичным? –

+0

Вы можете сделать метод статическим. Таким образом вам не нужно создавать экземпляр _Rules_. Не уверен, что я понимаю, как влияют ваши вычисления, предоставляя параметр конструктора. – keyser

ответ

0

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

public class Rules{ 
    public Rules(int size){ 
    //body 
    } 
    public static void methodIneed(){ 

    } 
} 
+0

Учитывая, что нет конструктора без параметров и этот метод еще не является статическим, я подозреваю, что 'methodIneed()' нуждается в инициализации конструктором, но, возможно, OP может пролить свет на этот сценарий. – Logan

+0

Да, но но что, если мне нужен медход, меняет Я хочу отобразить доску, которая заполняется информацией, делает статическую мера мне от этого? – gbe

+0

вы можете получить доступ ко всей информации/полям в статическом методе, поскольку поля yout также объявлены статическими. Если вы можете это сделать, вы можете пойти этим путем. – windler

1

просто сделать еще один пустой конструктор:

public class Rules{ 
    public Rules(int size){ 
    //body 
    } 

public Rules() 
{ 
    //body 
    } 

    public void methodIneed(){ 

    } 
} 

Тогда для доступа метода, необходимо,

Rules x = new Rules(); 
x.methodINeed(); 
+0

Это может нарушить другие методы, которые зависят от инициализации, выполняемой существующим конструктором. – Logan

+0

Да, это так, Я даже не могу использовать методы через мой второй конструктор, Он также заставляет все повторять, как вы думаете, я должен использовать отдельный класс для метода? – gbe

0

Я думаю, вы должны рассмотреть дизайн своих классов, почему в ea rth вы должны вызвать метод в другом классе для целей расчета ???

Возможное решение:

  • смесь два класса
  • добавить третий класс (например, класс Helper) и вызовите HelperClass.calculateForMe (СТГ)
Смежные вопросы