2014-11-19 3 views
0

Я пытался написать код в java, и у меня есть строки, которые я пишу во многих местах (точно так же). Я хочу заменить эти строки везде методом. Это возможно ?Как создать метод без параметров в java?

Например

public fill() 
{  x=x+1; 
     if(x == sizeX){ 
      y=y-1; 
      x=0; 
     } 
} 

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

+2

'заливка общественного недействительными()' должна работать. –

+0

Да, то, что вы хотите сделать, возможно. Ваш метод должен будет указать его тип возврата ('void'), но в противном случае то, что вы включили выше, является правильной идеей. – Turix

+0

также 'sizeX' - это поле? ('public void fill()') –

ответ

3
public class Test{ 
    private int x, y, sizeX;  

    public void fill(){ 
     x=x+1; 
     if(x == sizeX){ 
      y=y-1; 
      x=0; 
     } 
    } 
} 
+0

Я не хочу создавать новый класс. Я спрашивал, можно ли сделать метод в основном классе, который будет использовать внешние параметры и изменять их, не объявляя их в методе. – Bogdan

+0

В моем примере переменные не объявлены внутри метода. Он объявляется в классе, и метод fill() использует их напрямую. –

+0

У меня есть только этот класс "public static void main (String [] arg) {" И метод находится в этом классе. Должен ли я объявлять каждую переменную со словом private? – Bogdan

0

От JLS §8.4.5:

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

Вы забыли возвращаемый тип вашего метода. Поскольку ваш метод не возвращает значение, возвращаемый тип должен быть void.

Кроме того, этот метод должен быть в классе с полями.

public class Foo{ 
    private int x; 
    private int y; 
    private int sizeX;  

    public void fill(){ 
     x=x+1; 
     if(x == sizeX){ 
      y=y-1; 
      x=0; 
     } 
    } 
} 
+0

Я тоже пробовал с этим, но когда я запускаю его, я получаю «незаконный старт выражения» – Bogdan

+0

просто добавьте «void» перед заполнением, он должен работать. –

0

НТН

public class TestMethod { 

    static int x, y , sizeX; 

    public static void main(String[] args) {   
     x = 9; 
     y = 200; 
     sizeX = 10; 

     System.out.println("x/y/sizex :" + x + "/" + y + "/" + sizeX); 
     fill();  
     System.out.println("x/y/sizex :" + x + "/" + y + "/" + sizeX);    
    } 

    static void fill(){ 
     x=x+1; 
     if(x == sizeX){ 
      y=y-1; 
      x=0; 
     }  
    } 

} 
+0

Я не хочу объявлять какие-либо переменные, я хочу использовать внешние методы метода. Я просто хочу вызвать этот метод, и когда я это сделаю, он просто начнет изменять x и y. – Bogdan

+0

В чем-то вы должны объявить свои переменные – Osy

+0

, переменные объявлены в основном классе. Я спрашивал, могу ли я написать метод, который использует эту переменную и изменяет их. – Bogdan