Тёмный

#14 Методы класса, сеттеры и геттеры, public, private, protected | Java для начинающих 

selfedu
Подписаться 159 тыс.
Просмотров 9 тыс.
50% 1

Узнаете что такое методы класса и как они добавляются. Роль методов: сеттеры и геттеры. Режимы доступа к полям и методам класса с использованием модификаторов public и private. Режим доступа по умолчанию.
Инфо-сайт: proproprogs.ru

Опубликовано:

 

29 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 35   
@RuRu-je7uh
@RuRu-je7uh 2 месяца назад
Здравствуйте. Скажите, а почему нельзя ту же проверку ,которую вы прописали в методе, написать в конструкторе класса?
@Kleolit
@Kleolit 9 месяцев назад
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(); } }
@alexanderalexander1637
@alexanderalexander1637 3 года назад
всегда считал, что гетеры -это особенные женщины.
@dmitrelkin9256
@dmitrelkin9256 3 года назад
Лектор несколькими простыми и доступными для понимания фразами сумел объяснить то, что многие преподаватели ВУЗов, прибегая к гигантскому количеству "умных слов", безуспешно пытаются промямлить в течении целой лекции. Очередной раз Респект!
@asd-sl1kv
@asd-sl1kv 3 года назад
как-то ооп на java проще чем на питоне, по крайней мере мне оно далось проще, жаль что я учил ооп до всех этих уроков
@nouchance
@nouchance 3 года назад
Вы мне сказали что если у нас на канале будет 20к подписчиков то я начну курс Django.Я рекламирую ваш канал чтобы быстрее достичь 20к и скорее бы началось курс Django. Удачи вам!
@selfedu_rus
@selfedu_rus 3 года назад
Спасибо! Редкая поддержка! Хорошо, попробуем курс по Django. Если будут смотреть то буду делать.
@ВиталийКопоров-и4в
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; } } такое имеет право на жизнь в контексте данного урока?
@Частныйсектор-х4я
ну для новичков такой блок конечно не реально)) boolean regxString(String lastName) { Pattern p = Pattern.compile("([A-Za -]*\\)*\\(*\\s*)+"); Matcher m = p.matcher(lastName); Boolean b = m.matches(); return b; }
@mucka_puca9319
@mucka_puca9319 Год назад
про 2 задачу: что нужно написать при объявлении метода чтобы он возвращал объекст Vec2 ?
@spawnkid2012
@spawnkid2012 Год назад
Привет всем. Я бы предложил создать группу в телеге чтоб делится там своими решениями, ато я типо решил, а вот правильно или нет, это уже не понятно. Тем более 1 голова хорошо, а 2 лучше.:)
@selfedu_rus
@selfedu_rus Год назад
Создал, добавляйтесь: t.me/java_and_c
@BlackLemur
@BlackLemur 2 года назад
Спасибо за отличный курс лекций. Вопрос по 2-му подвигу. Правильно ли я понял, что нужно использовать класс Vector в описании класса Vec2 ?
@BlackLemur
@BlackLemur 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
@Частныйсектор-х4я
не судите строго. Первую задачу решил так: правда проверка идет что в имени совсем нет цифр + что там точно какие то буквы + что имя не пустое... майн: 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
@eskelgarsio2998
@eskelgarsio2998 3 года назад
Отличные уроки! Продолжай
@Canystra
@Canystra 3 года назад
Но автору все равно + 😁
@firi4737
@firi4737 2 года назад
Лучший канал
@The4akki
@The4akki 3 года назад
Подскажите, пожалуйста, как использовать методы Vec2 sum(Vec2 v) и Vec2 sub(Vec2 v) в 2 задании?
@MRasulM
@MRasulM Год назад
4:00 разве х1 и y1 это не нижний левый угол?
@selfedu_rus
@selfedu_rus Год назад
верхний левый, на экранах устройств ось Oy по умолчанию идет вниз, а не вверх (как по математике в школе)
@MERSIN-HOMES
@MERSIN-HOMES Год назад
Вот мой вариант решения второй задачи: public class app { public static void main(String[] args) { Vec2 V1 = new Vec2(); V1.SetV(10,300); Vec2 V2 = new Vec2(); V2.SetV(5,30); Vec2 REZ = Vec2.sum(V1,V2); System.out.printf("Sum of vectors with values (%.2f; %.2f) + (%.2f; %.2f) = (%.2f; %.2f) ", V1.GetA(),V1.GetB(), V2.GetA(),V2.GetB(),REZ.GetA(),REZ.GetB()); REZ = Vec2.sub(V1,V2); System.out.printf("Subtraction of vectors with values (%.2f; %.2f) - (%.2f; %.2f) = (%.2f; %.2f) ", V1.GetA(),V1.GetB(), V2.GetA(),V2.GetB(),REZ.GetA(),REZ.GetB()); } } class Vec2 { private double a,b; final double MAX_VAL = 100; Vec2 (){ } void SetV (double a, double b){ if ((-MAX_VAL
@Yornero
@Yornero 3 года назад
А как задать ограничение на ввод только буквенных символов? Я лично переводил строку в чар-массив, который проверял через цикл на соответствие буквенному чар диапазону. Но возможно есть путь попроще?
@selfedu_rus
@selfedu_rus 3 года назад
В целом да, только можно воспользоваться методом isLetter() для проверки буквенного символа.
@Yornero
@Yornero 3 года назад
@@selfedu_rus спасибо большое за ответ и урок ) почитаю про этот метод. Подскажите пожалуйста ещё, а есть ли какие то общие правила по оформлению кода? Заметил, что у вас хорошо скомпонованы строки кода и достаточно легко читаются. Или требования к оформлению различаются от места к месту?
@selfedu_rus
@selfedu_rus 3 года назад
@@Yornero Спасибо. Да, есть стандарт оформления. Нужно просто погуглить, так наизусть не помню. Я уже по наитию это делаю )
@Yornero
@Yornero 3 года назад
@@selfedu_rus благодарю, думаю лучше сходу приучаться писать удобно читаемый код)
@Yornero
@Yornero 3 года назад
@@programer8 через метод isLetter тоже уже попробовал
@Canystra
@Canystra 3 года назад
КатАлог. )) Рукалицо.
@Частныйсектор-х4я
учителя грамматики, ваши видео-уроки по другим запросам 😁
@MERSIN-HOMES
@MERSIN-HOMES Год назад
Спасибо за урок!!! Как всегда очень полезно. Первую задачу выкладываю: public class app { public static void main(String[] args){ Person A1 = new Person(); A1.SetInfo("Иванов Иван Иванович", 30,200,1); System.out.println(A1.GetFIO()+ " " + A1.GetAge() + " " + A1.GetWeight() + " " + A1.GetRank_number()); A1.SetInfo("Петров Иван Иванович", 29,80,5); System.out.println(A1.GetFIO()+ " " + A1.GetAge() + " " + A1.GetWeight() + " " + A1.GetRank_number()); Person A2 = new Person(); A2.SetInfo("Александров Иван Иванович", 26,85,2); System.out.println(A2.GetFIO()+ " " + A2.GetAge() + " " + A2.GetWeight() + " " + A2.GetRank_number()); } } class Person{ private String FIO; private int age, weight, rank_number; Person(){ } private boolean CorrectSring (String FIO){ for (int i=0; i
Далее
Inside Out 2: BABY JOY VS SHIN SONIC 4
00:16
Просмотров 4,3 млн
Java практика #09 - Getters и Setters
17:22