Как правильно создать импортируемый метод в отдельном классе? 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 шт):
Сейчас у вас функция 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();
}
}
И дальше работаешь с переменной.