Узнаете что такое методы класса и как они добавляются. Роль методов: сеттеры и геттеры. Режимы доступа к полям и методам класса с использованием модификаторов public и private. Режим доступа по умолчанию. Инфо-сайт: proproprogs.ru
class Book { private String title; private String author; private int yearPublished; private int pageCount; // Конструктор класса Book public Book(String title, String author, int yearPublished, int pageCount) { this.title = title; this.author = author; this.yearPublished = yearPublished; this.pageCount = pageCount; } // Геттеры и сеттеры для доступа к полям класса Book public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getYearPublished() { return yearPublished; } public void setYearPublished(int yearPublished) { this.yearPublished = yearPublished; } public int getPageCount() { return pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } } class Lib { private static final int MAX_BOOKS = 5; // Максимальное число книг private Book[] books; // Массив для хранения книг private int count; // Текущее количество книг в библиотеке public Lib() { books = new Book[MAX_BOOKS]; count = 0; } // Метод для добавления книги в библиотеку public void addBook(Book book) { if (count < MAX_BOOKS) { books[count] = book; count++; System.out.println("Книга добавлена в библиотеку."); } else { System.out.println("Библиотека полна, невозможно добавить книгу."); } } // Метод для удаления книги из библиотеки по названию public void removeBookByTitle(String title) { for (int i = 0; i < count; i++) { if (books[i].getTitle().equals(title)) { for (int j = i; j < count - 1; j++) { books[j] = books[j + 1]; } count--; System.out.println("Книга удалена из библиотеки."); return; } } System.out.println("Книга с указанным названием не найдена."); } // Метод для вывода списка книг в библиотеке public void displayBooks() { if (count == 0) { System.out.println("Библиотека пуста."); return; } System.out.println("Список книг в библиотеке:"); for (int i = 0; i < count; i++) { System.out.println((i + 1) + ". " + books[i].getTitle() + " - " + books[i].getAuthor()); } } } public class Main { public static void main(String[] args) { Lib library = new Lib(); // Создание объектов Book Book book1 = new Book("Название книги 1", "Автор 1", 2000, 300); Book book2 = new Book("Название книги 2", "Автор 2", 1995, 250); Book book3 = new Book("Название книги 3", "Автор 3", 2010, 400); // Добавление книг в библиотеку library.addBook(book1); library.addBook(book2); library.addBook(book3); // Вывод списка книг в библиотеке library.displayBooks(); // Удаление книги по названию library.removeBookByTitle("Название книги 2"); // Вывод списка книг после удаления library.displayBooks(); } }
Лектор несколькими простыми и доступными для понимания фразами сумел объяснить то, что многие преподаватели ВУЗов, прибегая к гигантскому количеству "умных слов", безуспешно пытаются промямлить в течении целой лекции. Очередной раз Респект!
Вы мне сказали что если у нас на канале будет 20к подписчиков то я начну курс Django.Я рекламирую ваш канал чтобы быстрее достичь 20к и скорее бы началось курс Django. Удачи вам!
class Person { private String lastName; Person(String lastName) { if (regxString(lastName)) setLastName(lastName); } boolean regxString(String lastName) { Pattern p = Pattern.compile("([A-Za -]*\\)*\\(*\\s*)+"); Matcher m = p.matcher(lastName); Boolean b = m.matches(); return b; } public void setLastName(String lastName) { this.lastName = lastName; } public String getLastName() { return lastName; } } такое имеет право на жизнь в контексте данного урока?
ну для новичков такой блок конечно не реально)) boolean regxString(String lastName) { Pattern p = Pattern.compile("([A-Za -]*\\)*\\(*\\s*)+"); Matcher m = p.matcher(lastName); Boolean b = m.matches(); return b; }
Привет всем. Я бы предложил создать группу в телеге чтоб делится там своими решениями, ато я типо решил, а вот правильно или нет, это уже не понятно. Тем более 1 голова хорошо, а 2 лучше.:)
Не стал ничего выдумывать. Сделал класс Vec2 с простыми целочисленными полями. Надеюсь, правильно. public class Vec2 { private int a,b; private static final int MAX_VAL = 100; Vec2(){} private boolean isValCorrect(int a, int b){ return (-MAX_VAL
не судите строго. Первую задачу решил так: правда проверка идет что в имени совсем нет цифр + что там точно какие то буквы + что имя не пустое... майн: Person one = new Person("Boris", 45,60,4); one.show(); Что делает: если все ок, то функция "show" покажет все в столбик, если айди, вес, возраст не корректен, пишет красным, не могу создать человека (по факту создан с нулевым). С именем возился дольше.... итак персон: public class Person { private String name; //only letters - space private int age; //30-200 private int weigh; //30-200 private int ID; //1-5 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeigh() { return weigh; } public void setWeigh(int weigh) { this.weigh = weigh; } public int getID() { return ID; } public void setID(int ID) { this.ID = ID; } private boolean isCorrectID(int arg){ if(arg5) System.err.println("IncorrectID"); return (1
А как задать ограничение на ввод только буквенных символов? Я лично переводил строку в чар-массив, который проверял через цикл на соответствие буквенному чар диапазону. Но возможно есть путь попроще?
@@selfedu_rus спасибо большое за ответ и урок ) почитаю про этот метод. Подскажите пожалуйста ещё, а есть ли какие то общие правила по оформлению кода? Заметил, что у вас хорошо скомпонованы строки кода и достаточно легко читаются. Или требования к оформлению различаются от места к месту?