Java 34 . Hiểu rõ phương thức so sánh equals và hascode | Phần 2 - Lập trình Hướng Đối Tượng

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

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

  • @TITVvn
    @TITVvn  2 года назад +1

    Link tải code: titv.vn/courses-page/lap-trinh-java-java-core/
    Nếu có câu hỏi và cần tư vấn thêm, hãy gửi câu hỏi tại đây: facebook.com/groups/titv.vn Thành viên trong nhóm luôn sẵn sàng giúp đỡ các bạn.
    Giúp anh đăng ký kênh, nhấn nút thích để video được nhiều bạn đam mê học lập trình biết đến nhé.
    Chúc các bạn học thật tốt và có một ngày thật vui.

  • @pureling.053
    @pureling.053 9 месяцев назад +1

    Nhờ xem video của anh mà em có thể dễ dàng theo kịp tiến độ trên lớp. Dù thầy trên lớp dạy rất hay nhưng lại quá nhanh và kiến thức mỗi buổi thật sự là quá dồn dập, nên đến buổi thực hành thì em quan sát thấy có nhiều bạn xung quanh em hoang mang vì bị thủng những hiểu biết cơ bản. Em cảm thấy mình thật sự may mắn vì đã đi đúng hướng khi chọn đồng hành cùng chuỗi bài giảng này. Đây sẽ là nền tảng vững chắc cho việc tiếp thu kiến thức trên lớp của em!
    Cảm ơn anh vì đã dành nhiều thời gian và công sức như vậy để mang đến những bài giảng rất bổ ích. Nếu không có anh giúp thì chắc giờ em đang đau khổ với môn Lập Trình Hướng Đối Tượng lắm 😂❤

    • @TITVvn
      @TITVvn  9 месяцев назад +1

      Chia sẻ cho các bạn cùng lớp để các bạn cùng học em nhé.

  • @hellonvp
    @hellonvp 3 года назад +12

    Xem kênh anh cũng lâu rồi
    Anh dạy rất chi tiết ....rất dễ hiểu

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

      Chúc bạn học tập tốt. Cảm ơn bạn đã theo dõi và đăng ký kênh.

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

    không biết bao giờ mới xong nổi chuổi bài của anh nữa, một người quá tâm huyết vời nghề

  • @hoctap9662
    @hoctap9662 2 года назад +2

    Cảm ơn thầy rất nhiều ạ, mong thầy ra một clip tổng hợp các phím tắt trong lập trình Java ạ ❤❤❤❤

  • @TienTran-om3wp
    @TienTran-om3wp 3 года назад +1

    rất thích xem video của a xem đi xem lại mấy lần rồi

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

      Chúc bạn học tốt. Hãy giúp kênh chia sẻ video clip này với các bạn trong lớp của bạn nhé. Đăng ký kênh TITV để theo dõi các video clip tiếp theo nhé.

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

    Cảm ơn a, bài giảng của a rất tâm huyết nhiệt tình

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

      Bạn đăng ký kênh youtube của TITV nhé.
      Sau đó nếu có câu hỏi, bạn vui lòng gửi vào nhóm này facebook.com/groups/titv.vn các thành viên của nhóm sẽ hỗ trợ cho bạn. Chúc bạn một ngày vui vẻ.

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

    rất dễ hiểu ạ, mong anh ra thêm test case ạ

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

    Em muốn học thuộc code nên phải xem lại lý thuyết nữa ạ. Em cảm ơn Thầy, chúc Thầy nhiều sức khỏe ạ!

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

      Đừng học thuộc. Hãy hiểu và làm đi làm lại nhiều lần. Hiểu vấn đề xong rồi quên cũng ko sao. Đi làm ko ai bắt bạn phải thuộc lòng. Bạn có thể search bất kỳ lúc nào bạn cần.

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

      @@TITVvn e học hết 100 bài này e có thể đi thực tập đc chưa ạ

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

      @@hoangtuan5985 Xem tại đây: facebook.com/groups/titv.vn/permalink/1153292758707456

  • @giap_y2k881
    @giap_y2k881 2 года назад

    cảm ơn anh, video tâm huyết quá, mong anh sẽ tiếp tục chia sẻ những kiến thức quý giá này tới mọi người. Chúc anh luôn thành công!

  • @Thanh_143
    @Thanh_143 7 месяцев назад

    Thầy có thể ra thêm về phương thức tĩnh Static hông ạ , e cảm ơn nhiều !

  • @conghauduong1480
    @conghauduong1480 2 года назад

    Thầy dạy dễ hiểu quá, em cảm ơn thầy

    • @TITVvn
      @TITVvn  2 года назад

      Chúc bạn ngày vui nhé!

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

    cảm ơn thầy ạ
    trường e dạy nhanh và khó hiểu quá

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

      Chúc bạn học tốt. Hãy giúp kênh chia sẻ video clip này với các bạn trong lớp của bạn để cùng học nhé.

  • @honglinh154
    @honglinh154 2 года назад

    cám ơn thầy Tùng

  • @LinhNguyen-mv7io
    @LinhNguyen-mv7io 3 месяца назад

    Vì không hiểu nên em đã mò để giải thích ra đoạn code này, hi vọng anh xem thử ý giải thích của em có đúng không ạ?
    public boolean equals(Object obj) :
    B1: Tạo phương thức equal (đối tượng mà muốn so sánh)
    => Đối tượng obj này có lớp Object
    => Object là lớp cơ sở của các lớp khác, các lớp con kế thừa phương thức, thuộc tính của lớp Object
    => Liên hệ thực tế: Bạn muốn có 1 bức tượng, bạn phải có một bản thiết kế mẫu cơ bản của bức tượng ( Object). Khi tạo ra 1 bức tượng cụ thể (như tượng người) thì chúng sẽ kế thừa những cái cơ bản của thiết kễ mẫu (Object) và thêm những cái đặc điểm riêng để tạo nên bản thiết kế riêng ( lớp cụ thể)
    B2: Chúng ta xét điều kiện
    ***Điều kiện 1 (this == obj) -> return true: kiểm tra xem hai biến tham chiếu this và obj có trỏ đến cùng 1 địa chỉ của đối tượng trong bộ nhớ hay không
    TH1: nếu đúng, return true - giống địa chỉ trong bộ nhớ
    TH2: nếu sai, kiểm tra Điều kiện 2
    => Biến tham chiếu là loại biến để lưu trữ địa chỉ của đối tượng
    => Liên hệ thực tế: bạn có 2 tờ giấy chứa địa chỉ của bức tượng
    (biến tham chiếu). Nếu địa chỉ giống nhau => cùng 1 bức tượng. Nên nhớ trong Java, mỗi đối tượng sẽ có 1 địa chỉ duy nhất.
    ***Điều kiện 2 (obj == null) -> retrurn false: kiểm tra xem biến tham chiếu có trỏ đến đối tượng nào trong bộ nhớ không
    TH1: nếu đúng, return false ( vì không có đối tượng để so sánh)
    TH2: nếu sai, là có vị trí của đối tượng, có đối tượng để so sánh, kiểm tra Điều kiện 3
    => Liên hệ thực tế: có nghĩa là nếu tờ giấy không chứa bất ký địa chỉ nào để đi đến bức tượng, tờ giấy trắng thì không có gì để so sánh.
    ***Điều kiện 3 this.getClass() != obj.getClass() -> return false: kiểm tra xem 2 đối tượng được so sánh có cùng 1 lớp/class/khuôn hay không
    TH1: nếu đúng, return false (không cùng class)
    TH2: nếu sai, tiếp tục thực hiện B3
    => Liên hệ thực tế: kiểm tra xem bức tượng được truyền vào với bức tượng hiện tại có cùng 1 khuôn đúc không.
    B3: Chúng ta thực hiện ép kiểu cho đối tượng
    MyDate other = (MyDate) obj;
    => Cho dù this và obj có cùng khuôn/class nhưng obj chỉ đang có bản thiết kế mẫu chung về đối tượng (Object) chứ không có chi tiết cụ thể riêng, nên không thể lấy ra được các thuộc tính/chi tiết bên trong để so sánh.
    => Vì vậy phải ép kiểu obj về bản thiết kế cụ thể là MyDate và obj sau khi được ép kiểu sẽ được gán cho biến other và tiếp tục thực hiện B4
    => Liên hệ thực tế: sau khi bạn kiểm tra 2 bức tượng có cùng khuôn đúc ( tượng người), bản sẽ phải chuyển bản thiết kiết tượng chung của obj thành bản thiết kế cụ thể là tượng người để tiến hành so sánh chi tiết của 2 bức tượng.
    B4: So sánh các chi tiết/thuộc tính của 2 đối tượng
    this.day != other.day -> return false
    this.month != other.month -> return false
    this.year != other.year -> return false
    => TH1: Nếu đúng điều kiện, return false ( chi tiết không đúng, không cùng đối tượng). Chỉ cần 1 thuộc tính không đúng là false
    => TH2: Nếu sai điều kiện, return true ( tất cả thuộc tính đều = nhau)

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

    Video rất hay ạ ❤

  • @LamNguyen-ei6sv
    @LamNguyen-ei6sv 3 года назад +1

    hay quá anh ơi

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

      Cảm ơn bạn rất nhiều vì đã theo dõi và ủng hộ kênh, bạn đăng ký ủng hộ kênh youtube của TITV nhé.
      Sau đó nếu có câu hỏi, bạn vui lòng gửi vào nhóm này facebook.com/groups/titv.vn các thành viên của nhóm sẽ hỗ trợ cho bạn. Chúc bạn một ngày vui vẻ.

  • @angtinh5078
    @angtinh5078 2 года назад

    Mong thầy ra thêm 1 khóa về HTML và CSS

    • @TITVvn
      @TITVvn  2 года назад +1

      Em xem thêm ở các trang nhé/.

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

    very useful

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

      Keep watching

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

    da hoc xong a

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

      Cô lên nhé.

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

    em không hiểu tại sao cái myDate other ở đâu ra
    ai giảng cho em với
    em cảm ơn

  • @dailyanh1111
    @dailyanh1111 7 месяцев назад

    Phút thứ 5:00 giải thích vì sao không thể sử dụng 2 dấu == để so sánh 2 obj thông qua lớp khởi tạo

  • @NguyenHuuTana
    @NguyenHuuTana Год назад +3

    thầy ơi cho em hỏi tại sao chỗ phút thứ 10:14 lại phải ép kiểu MyDate ạ theo em nghĩ khi thôg qua được dòng 77 thì 2 đối tượng so sánh chắc chắn cùng 1 đối tượng rồi thì việc ép kiểu làm gì ạ

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

      obj hình như nó đại diện cho hết object mà nên ép kiểu giống nhau để so sánh

  • @TC-qh9fc
    @TC-qh9fc 2 года назад

    anh giải thích rõ giúp em chỗ other trong equals với

    • @TITVvn
      @TITVvn  2 года назад

      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

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

    Anh ơi hiện tượng trùng mã băm có phải là khi 2 đối tượng chưa chắc đã bằng nhau nhưng lại có mã băm giống nhau đúng không ạ?

  • @namNguyen-tm6gr
    @namNguyen-tm6gr 3 года назад +1

    Anh ơi ko dạy về mảng trong java ạ

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

      Chào bạn, phần mảng được trình bay sau phần Hướng đối tượng, sẽ ra mắt trong thời gian tới.

  • @yughiole7088
    @yughiole7088 2 года назад

    ham echo ok 👌 ngay 17/4/2022

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

    Trong bài này theo em hiểu thì phép so sánh đó không bằng là vì chương trình đang so sánh địa chỉ(con trỏ) của 2 tượng này đúng không ạ.

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

    Hàm này mik đặt tên khác đc k

  • @kunkun7650
    @kunkun7650 2 года назад

    thầy cho e hỏi hàm băm có xài nhiều trong thực chiến không thầy

    • @TITVvn
      @TITVvn  2 года назад

      Có em nhé. Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

  • @nguyenminhrelex
    @nguyenminhrelex 2 года назад

    cho e hỏi, học đủ hết 100 video dạy java của a chuyển qua học lập trình android được chưa ạ, rất mong a trả lời @@

    • @TITVvn
      @TITVvn  2 года назад +1

      Bạn nên học về SQL trước.

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

    Anh làm về regex đi anh

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

      Chào bạn, hiện tại các bài đang đi từ đơn giản đến phức tạp, nội dung bạn đề xuất sẽ được bổ sung trong chuỗi bài này. Cảm ơn bạn đã theo dõi và đăng ký kênh.

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

    em vào phần source sao kh thấy mấy cái a bảo nhỉ 🥲🥲

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

    10:20

  • @trantinh1048
    @trantinh1048 2 года назад

    hiện tại thì 2 hàm này được đổi mới r hicc :

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

    anh ỏi em làm y như anh nhưng không true được em cho 2 thằng dối tượng y hệt nhau nó vẫn ra false. cái (this==obj) luôn sai vì em thử thì thấy nó lun khác dù em Set 2 thằng y hệt nhau rồi.

  • @nguyenmai5528
    @nguyenmai5528 2 года назад

    dạ em dùng netbeans thì có mấy cái chọn nhanh hascode với equals kh ạ, tại em tìm kh thấy, em tự gõ thì nó hiện lỗi ạ

    • @TITVvn
      @TITVvn  2 года назад

      Bạn hãy gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

  • @yunyun505
    @yunyun505 2 года назад

    anh ơi, nguồn code ở web của bài này bị copy paste nhầm rồi ạ, thiếu mất code của class MyDate

    • @TITVvn
      @TITVvn  2 года назад

      Cảm ơn em nhiều nhé.
      Nếu có câu hỏi khác, Bạn hãy gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn.
      Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé.
      Chúc bạn học thật tốt.

  • @anhhoangviet6088
    @anhhoangviet6088 2 года назад

    sao anh coment nhiều dòng kiểu gì vậy ạ

    • @TITVvn
      @TITVvn  2 года назад

      Chúc bạn học thật tốt nhé, nếu có câu hỏi, bạn hãy gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé.

    • @vusam6524
      @vusam6524 2 года назад

      ctrl+/

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

    uả sao máy của e nó ra dòng này mà ko phải giống như trong clip vậy a ?
    @Override
    public boolean equals(Object o) {
    if (this == o)
    return true;
    if (!(o instanceof Java34 java34))
    return false;
    return day == java34.day && month == java34.month && year == java34.year;
    }
    @Override
    public int hashCode() {
    return Objects.hash(day, month, year);
    }

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

      nó vẫn trả về true false thôi bạn

  • @NamNguyen-xd9br
    @NamNguyen-xd9br 2 года назад

    em làm 2 đối tượng giống nhau, giống hệt anh mà nó lại false. chả hiểu kiểu gì
    edit: do em chưua thêm equals vào bên Mydate

    • @TITVvn
      @TITVvn  2 года назад

      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

  • @chienphung9633
    @chienphung9633 2 года назад

    it's not easy to memorize this code

    • @TITVvn
      @TITVvn  2 года назад

      Cố lên nhé.
      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.