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

Поделиться
HTML-код
  • Опубликовано: 11 дек 2024

Комментарии • 35

  • @dmitrelkin9256
    @dmitrelkin9256 4 года назад +9

    Лектор несколькими простыми и доступными для понимания фразами сумел объяснить то, что многие преподаватели ВУЗов, прибегая к гигантскому количеству "умных слов", безуспешно пытаются промямлить в течении целой лекции. Очередной раз Респект!

  • @eskelgarsio2998
    @eskelgarsio2998 4 года назад +1

    Отличные уроки! Продолжай

  • @nouchance
    @nouchance 4 года назад +5

    Вы мне сказали что если у нас на канале будет 20к подписчиков то я начну курс Django.Я рекламирую ваш канал чтобы быстрее достичь 20к и скорее бы началось курс Django. Удачи вам!

    • @selfedu_rus
      @selfedu_rus  4 года назад +7

      Спасибо! Редкая поддержка! Хорошо, попробуем курс по Django. Если будут смотреть то буду делать.

  • @firi4737
    @firi4737 3 года назад +1

    Лучший канал

  • @mucka_puca9319
    @mucka_puca9319 Год назад +1

    про 2 задачу: что нужно написать при объявлении метода чтобы он возвращал объекст Vec2 ?

  • @RuRu-je7uh
    @RuRu-je7uh 4 месяца назад +1

    Здравствуйте. Скажите, а почему нельзя ту же проверку ,которую вы прописали в методе, написать в конструкторе класса?

  • @Частныйсектор-х4я
    @Частныйсектор-х4я 2 года назад

    не судите строго. Первую задачу решил так:
    правда проверка идет что в имени совсем нет цифр + что там точно какие то буквы + что имя не пустое...
    майн:
    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

  • @BlackLemur
    @BlackLemur 3 года назад +2

    Спасибо за отличный курс лекций. Вопрос по 2-му подвигу. Правильно ли я понял, что нужно использовать класс Vector в описании класса Vec2 ?

    • @BlackLemur
      @BlackLemur 3 года назад +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

  • @MERSIN-HOMES
    @MERSIN-HOMES Год назад +1

    Спасибо за урок!!! Как всегда очень полезно.
    Первую задачу выкладываю:
    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

  • @Kleolit
    @Kleolit 11 месяцев назад +1

    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();
    }
    }

  • @Canystra
    @Canystra 3 года назад +1

    Но автору все равно + 😁

  • @The4akki
    @The4akki 3 года назад

    Подскажите, пожалуйста, как использовать методы Vec2 sum(Vec2 v) и Vec2 sub(Vec2 v) в 2 задании?

  • @MRasulM
    @MRasulM Год назад

    4:00 разве х1 и y1 это не нижний левый угол?

    • @selfedu_rus
      @selfedu_rus  Год назад +1

      верхний левый, на экранах устройств ось Oy по умолчанию идет вниз, а не вверх (как по математике в школе)

  • @spawnkid2012
    @spawnkid2012 Год назад +1

    Привет всем. Я бы предложил создать группу в телеге чтоб делится там своими решениями, ато я типо решил, а вот правильно или нет, это уже не понятно. Тем более 1 голова хорошо, а 2 лучше.:)

    • @selfedu_rus
      @selfedu_rus  Год назад

      Создал, добавляйтесь: t.me/java_and_c

  • @asd-sl1kv
    @asd-sl1kv 4 года назад +4

    как-то ооп на java проще чем на питоне, по крайней мере мне оно далось проще, жаль что я учил ооп до всех этих уроков

  • @ВиталийКопоров-и4в
    @ВиталийКопоров-и4в 4 года назад +1

    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я
      @Частныйсектор-х4я 2 года назад

      ну для новичков такой блок конечно не реально))
      boolean regxString(String lastName) {
      Pattern p = Pattern.compile("([A-Za
      -]*\\)*\\(*\\s*)+");
      Matcher m = p.matcher(lastName);
      Boolean b = m.matches();
      return b;
      }

  • @Yornero
    @Yornero 4 года назад

    А как задать ограничение на ввод только буквенных символов? Я лично переводил строку в чар-массив, который проверял через цикл на соответствие буквенному чар диапазону. Но возможно есть путь попроще?

    • @selfedu_rus
      @selfedu_rus  4 года назад

      В целом да, только можно воспользоваться методом isLetter() для проверки буквенного символа.

    • @Yornero
      @Yornero 4 года назад

      @@selfedu_rus спасибо большое за ответ и урок ) почитаю про этот метод. Подскажите пожалуйста ещё, а есть ли какие то общие правила по оформлению кода? Заметил, что у вас хорошо скомпонованы строки кода и достаточно легко читаются. Или требования к оформлению различаются от места к месту?

    • @selfedu_rus
      @selfedu_rus  4 года назад

      @@Yornero Спасибо. Да, есть стандарт оформления. Нужно просто погуглить, так наизусть не помню. Я уже по наитию это делаю )

    • @Yornero
      @Yornero 4 года назад

      @@selfedu_rus благодарю, думаю лучше сходу приучаться писать удобно читаемый код)

    • @Yornero
      @Yornero 4 года назад +1

      @@programer8 через метод isLetter тоже уже попробовал

  • @alexanderalexander1637
    @alexanderalexander1637 4 года назад +4

    всегда считал, что гетеры -это особенные женщины.

  • @MERSIN-HOMES
    @MERSIN-HOMES Год назад +1

    Вот мой вариант решения второй задачи:
    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

  • @Canystra
    @Canystra 3 года назад

    КатАлог. )) Рукалицо.

    • @Частныйсектор-х4я
      @Частныйсектор-х4я 2 года назад +1

      учителя грамматики, ваши видео-уроки по другим запросам 😁