Как правильно создать импортируемый метод в отдельном классе? Java

Подскажите пожалуйста, как правильно оформить код в отдельном классе который в будущем будет импортироваться в другие классы и в других классах была возможность принимать итоговое значение метода и сохранять их. В плане я сделал тестовый метод из нарезок примеров который конвертирует любое целое десятковое число в двоичное. Т.е. пользователь вводит с клавиатуры любое целое число, жмет Entr и программа конвертирует в двоичное через метод в внешнем классе. Хочеться что бы результат можно было сохранить в классе который обращаеться к методу. Пример кода ниже.

package bin;
import java.util.Scanner;

public class Binar {   

public static void binar(int a){    
    int b;     
    String temp = "";    
    while(a !=0){  
        b = a%2;  
        temp = b + temp;  
        a = a/2;  
    } if (temp.equals("10")) {
        temp = "0" + temp;
        System.out.println(temp);  }
    if (temp.equals("11")) {
        temp = "0" + temp; 
        System.out.println(temp); }
    if (temp.equals("1")) {
        temp = "00" + temp;
        System.out.println(temp); } else {
            System.out.println(temp);

        }
}  
public static  void binarturn(String [] args) {  
    Scanner kb = new Scanner (System.in);
    System.out.print("Введите число которое хотите перевести в (Двоичное) - ");
    int  c =  kb.nextInt();  
    binar(c);
    kb.close();

}

} 

помимо примеров модификаций приветствуется и примеры вызова метода для мох планов. Как вызвать метод без сохранения результата я понимаю... Но задача состоит в том что бы результат сохранился в вызвавшем классе метод...


Ответы (2 шт):

Автор решения: Roman Konoval

Сейчас у вас функция binar печатает результат в стандартный выход. Сделайте, чтобы она возвращала значение:

public static String binar(int a){    
    int b;     
    String temp = "";    
    while(a !=0) {  
        b = a%2;  
        temp = b + temp;  
        a = a/2;  
    }
    if (temp.equals("10")) {
        return "0" + temp;
    }
    if (temp.equals("11")) {
        return "0" + temp; 
    if (temp.equals("1")) {
        return "00" + temp;
    } else {
        return temp;
    }
} 

И теперь ее можно вызывать из других мест:

int  c =  kb.nextInt();  
String convertedValue = binar(c);  // Вызываем и сохраняем результат в переменную
System.out.println(convertedValue); // используем
kb.close();

Из другого класса можно вызвать так же:

import bin.Binar;

public class A {
  public static void main(String args[]) {
    String convertedValue = Binar.binar(35);  // Вызываем и сохраняем результат в переменную
    System.out.println(convertedValue); // используем
  }
}
→ Ссылка
Автор решения: Максим Никитин

Если я правильно понял твой вопрос.

package bin;
import java.util.Scanner;

public class Binar {

    private static String binar(int a){
        int b;     
        String temp = "";    
        while(a !=0){  
            b = a%2;  
            temp = b + temp;  
            a = a/2;  
        } 
        if (temp.equals("10")) {
            temp = "0" + temp;
            return temp;
        }
        if (temp.equals("11")) {
            temp = "0" + temp; 
            return temp; 
        }
        if (temp.equals("1")) {
            temp = "00" + temp;
            return temp; 
        }
        return temp;
    }

    public static String binarturn() {  
        Scanner kb = new Scanner (System.in);
        System.out.print("Введите число которое хотите перевести в (Двоичное) - ");
        int  c =  kb.nextInt();
        kb.close();  
        return binar(c);
    }   
}

А в main записывать результат в переменную.

import bin.Binar;

public class Main{
    public static void main(){
        String var = Binar.binaturn();
    }
}

И дальше работаешь с переменной.

→ Ссылка