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.
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 😂❤
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ẻ.
Đừ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.
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)
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ẻ.
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ì ạ
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.
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.
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.
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.
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.
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.
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é.
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); }
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.
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.
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.
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 😂❤
Chia sẻ cho các bạn cùng lớp để các bạn cùng học em nhé.
Xem kênh anh cũng lâu rồi
Anh dạy rất chi tiết ....rất dễ hiểu
Chúc bạn học tập tốt. Cảm ơn bạn đã theo dõi và đăng ký kênh.
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ề
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 ạ ❤❤❤❤
rất thích xem video của a xem đi xem lại mấy lần rồi
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é.
Cảm ơn a, bài giảng của a rất tâm huyết nhiệt tình
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ẻ.
rất dễ hiểu ạ, mong anh ra thêm test case ạ
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 ạ!
Đừ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.
@@TITVvn e học hết 100 bài này e có thể đi thực tập đc chưa ạ
@@hoangtuan5985 Xem tại đây: facebook.com/groups/titv.vn/permalink/1153292758707456
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!
Thầy có thể ra thêm về phương thức tĩnh Static hông ạ , e cảm ơn nhiều !
Thầy dạy dễ hiểu quá, em cảm ơn thầy
Chúc bạn ngày vui nhé!
cảm ơn thầy ạ
trường e dạy nhanh và khó hiểu quá
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é.
cám ơn thầy Tùng
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)
Video rất hay ạ ❤
hay quá anh ơi
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ẻ.
Mong thầy ra thêm 1 khóa về HTML và CSS
Em xem thêm ở các trang nhé/.
very useful
Keep watching
da hoc xong a
Cô lên nhé.
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
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
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ì ạ
obj hình như nó đại diện cho hết object mà nên ép kiểu giống nhau để so sánh
anh giải thích rõ giúp em chỗ other trong equals với
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.
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 ạ?
Anh ơi ko dạy về mảng trong java ạ
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.
ham echo ok 👌 ngay 17/4/2022
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 ạ.
Không phải em.
java mà con trỏ gì đấy
Hàm này mik đặt tên khác đc k
thầy cho e hỏi hàm băm có xài nhiều trong thực chiến không thầy
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.
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 @@
Bạn nên học về SQL trước.
Anh làm về regex đi anh
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.
em vào phần source sao kh thấy mấy cái a bảo nhỉ 🥲🥲
10:20
hiện tại thì 2 hàm này được đổi mới r hicc :
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.
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 ạ
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.
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
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.
sao anh coment nhiều dòng kiểu gì vậy ạ
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é.
ctrl+/
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);
}
nó vẫn trả về true false thôi bạn
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
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.
it's not easy to memorize this code
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.