Начал изучать ООП с Java, на первом практическом задании столкнулся с проблемой, которую пока не могу решить. Есть идея и понимание того, как в теории надо это сделать - но реализовать на практике не получается.
Код задания:
import java.util.Scanner;
public class Things {
public static void main(String args[]) {
String characterString;
Scanner reader = new Scanner(System.in);
PrintingClass printer = new PrintingClass();
System.out.print("Type in the character string for printing: ");
characterString = reader.nextLine();
printer.Print(characterString);
}
}
// Write the missing class here
// Class is written in the text box below.
Нужно написать новый class, который позволит сделать следующий вывод:
Type in the character string for printing: Matt Jackson is here
Matt Jackson is here
Понимаю, что нужно создать класс
public class printingClass
И внутри него должен быть объект
printer
Взаимодействие с которым должно как-то вызывать функцию
System.out.print
Которая содержит введенный пользователем текст.
Заранее спасибо за помощь!
И внутри него должен быть объект printer
Это не совсем корректная формулировка. Вас просят описать новый класс, который в себе содержит определенный метод.
Давай разберем исходный код:
import java.util.Scanner;
public class Things {
public static void main(String args[]) {
String characterString; // Объявляем переменную characterString типа String
Scanner reader = new Scanner(System.in); // Создаем объект, который позволит считать строку, введенную в консоли
PrintingClass printer = new PrintingClass(); // Создаем объект нашего класса (используется дефолтный конструктор без параметров)
System.out.print("Type in the character string for printing: "); // Выводим строку в консоль
characterString = reader.nextLine(); // Считываем строку из консоли
printer.Print(characterString); // Выводим значение переменной characterString на консоль
}
}
Решение, к примеру, может быть таким:
public class PrintingClass { // описываем структуру класса
public void Print(String str) { // описание нашего метода
System.out.println(str);
}
}
Или такой вариант:
public class PrintingClass {
public PrintingClass() {
}
public void Print(String str) {
System.out.println(str);
}
}
По факту оба решения выше одинаковы. Прошу заметить, если вы явно не определяете ни один конструктор, то язык за вас создаст конструктор по-умолчанию (без параметров). Если же вы определили хотя бы один конструктор, то конструктор по умолчанию создан не будет.
В вашем примере метод у класса PrintingClass начинается с большой буквы, так именовать в языке не принято. Выдержка из конвенции о наименовании на языке Java:
Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.
Вольный перевод: Методы описывают действие. Название начинается со строчной первой буквы, если в имени несколько слов, каждое следующее слово пишется с заглавной буквы слитно.
Подробнее о правилах наименования можете почитать здесь: Naming Conventions.
Удачи в изучении языка!
Так попробуйте
public class Main {
public static void main(String[] args) {
Scanner vvod = new Scanner(System.in); //создаём магию ввода
int var_num; //создаём переменную типа int
System.out.print("Введите число: "); //выводим на консоль сообщение о вводе
var_num = vvod.nextInt(); //вводим значение в созданную переменную
System.out.print("Ваше число: " + var_num); //выводим отформатированное сообщение,
//содержащее значение введённой переменной
}
}
Я создал программу Paint, который можно рисовать что угодно! Теперь задача такая, когда я буду рисовать на одном девайсе, на втором девайсе должен...