<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>nhóm 1 - có làm mới có ăn- Java 27/10 by Hồ Hoàng Nam</title>
      <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm</link>
      <description>Được tạo với một tâm trí cởi mở</description>
      <language>en-us</language>
      <pubDate>2021-10-27 06:32:58 UTC</pubDate>
      <lastBuildDate>2025-10-28 15:52:07 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title>Silde</title>
         <author>nambolo123</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847373448</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361625126/dd011fca1316b5e84725ceb78fed1471/Huong_doi_tuong_trong_Java.ppt" />
         <pubDate>2021-10-27 06:38:24 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847373448</guid>
      </item>
      <item>
         <title>Phân công: (slide) </title>
         <author>nambolo123</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847389547</link>
         <description><![CDATA[<div>Phương Nam: 6,7<br>Nhật: 4, 5<br>Hiếu: 2, 3<br>Chương: 10, 11<br>Hoàng Nam: 8, 9<br>Đề tài: quản lý tiền trong ngân hàng.</div>]]></description>
         <enclosure url="" />
         <pubDate>2021-10-27 06:47:30 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847389547</guid>
      </item>
      <item>
         <title>Câu 5. Lớp lồng nhau trong Java là gì? Cho ví dụ.</title>
         <author>3120220026</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847397238</link>
         <description><![CDATA[<div><strong>1. Khái niệm:</strong></div><ul><li><strong>Lớp lồng nhau (inner class) trong java</strong> là một lớp được khai báo trong lớp (class) hoặc interface khác.</li><li>Chúng ta sử dụng inner class để nhóm các lớp và các interface một cách logic lại với nhau ở một nơi để giúp cho code dễ đọc và dẽ bảo trì hơn.</li><li>Thêm vào đó, nó có thể truy cập tất cả các thành viên của lớp bên ngoài (outer class) bao gồm các thành viên dữ liệu private và phương thức.</li></ul><div><strong>2. Các ưu điểm của inner class trong java:</strong></div><ul><li>Inner class biển diễn cho một kiểu đặc biệt của mối quan hệ đó là nó có thể truy cập tất cả các thành viên (các thành viên dữ liệu và các phương thức) của lớp ngoài bao gồm cả private.</li><li>Inner class được sử dụng để giúp code dễ đọc hơn và dễ bảo trì bởi vì nó nhóm các lớp và các interface một cách logic vào trong một nơi.</li><li>Code được tối ưu hóa: tiết kiệm code hơn.</li></ul><div><strong>3. Các kiểu của lớp lồng nhau trong java:<br></strong><br></div><div>a. Lớp lồng nhau <strong>non-static (inner class</strong>):</div><ul><li><strong>Member Inner Class:</strong> Một lớp được tạo ra bên trong một lớp và bên ngoài phương thức.</li><li><strong>Annomynous Inner Class:</strong> Một lớp được tạo ra để implements interface hoặc extends class. Tên của nó được quyết định bởi trình biên dịch java.</li><li><strong>Local Inner Class: </strong>Một lớp được tạo ra bên trong một phương thức.</li></ul><div>b. Lớp lồng nhau<strong> Static</strong>:</div><ul><li><strong>Member Inner Class: </strong>Một lớp được tạo ra bên trong một lớp và bên ngoài phương thức.</li><li><strong>Anonymous Inner Class: </strong>Một lớp được tạo ra để implements interface hoặc extends class. Tên của nó được quyết định bởi trình biên dịch java.</li><li><strong>Local Inner Class:</strong> Một lớp được tạo ra bên trong một phương thức.</li><li><strong>Static Nested Class:</strong> Một lớp static được tạo ra bên trong một lớp.</li><li><strong>Nested Interface: </strong>Một interface được tạo ra bên trong một lớp hoặc một interface.</li></ul><div><strong>3. Cú pháp:<br>class</strong> Outer {</div><div>&nbsp; &nbsp; // code</div><div>&nbsp; &nbsp; <strong>class</strong> Inner {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // code</div><div>&nbsp; &nbsp; }</div><div>}<br><strong>4. Ví dụ:<br>class</strong> MemberOuterExample {</div><div>&nbsp; &nbsp; <strong>private</strong> <strong>int</strong> so_tien = 30;</div><div>&nbsp;</div><div>&nbsp; &nbsp; <strong>class</strong> Inner {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; <strong>void</strong> msg() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("so tien la " + so_tien "$");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; }</div><div>&nbsp;</div><div>&nbsp; &nbsp; <strong>public</strong> <strong>static</strong> <strong>void</strong> main(String args[]) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; MemberOuterExample obj = <strong>new</strong> MemberOuterExample();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; MemberOuterExample.Inner in = obj.<strong>new</strong> Inner();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; in.msg();</div><div>&nbsp; &nbsp; }</div><div>}<br><br>Kết quả:&nbsp;<br>so tien la 30 $</div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361627839/e5a116eab3a9bf3b30df390eb64c72a8/ta_i_xu__ng__1_.jfif" />
         <pubDate>2021-10-27 06:51:32 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847397238</guid>
      </item>
      <item>
         <title>6. Nêu cách sử dụng biến this trong java? Cho ví dụ.</title>
         <author>3120220026</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847399929</link>
         <description><![CDATA[<div><strong>1. Khái niệm:</strong></div><ul><li>Từ khóa <strong>this</strong> trong java là một biến tham chiếu được sử dụng để tham chiếu tới <strong>đối tượng của lớp hiện tại</strong>.</li></ul><div><strong>2. Cách sử dụng:</strong></div><ul><li>Tham chiếu tới biến instance của lớp hiện tại.</li><li>Gọi phương thức (method) của lớp hiện tại.</li><li>Gọi hàm dựng (constructor) của lớp hiện tại.</li><li>Trả về instance của lớp hiện tại</li><li>Được truyền như một tham số trong phương thức (method).</li><li>Được truyền như một tham số trong hàm dựng (constructor).</li></ul><div><strong>3. Ví dụ:</strong><br><strong>package</strong> quan_ly_ngan_hang;</div><div><strong>public</strong> <strong>class</strong> thong_tin_khach_hang {</div><div>&nbsp; &nbsp; <strong>private</strong> <strong>int</strong> ma_khach_hang;</div><div>&nbsp; &nbsp; <strong>private</strong> String ten_khach_hang;</div><div>&nbsp; &nbsp; <strong>private</strong> String so_tien_trong_tai_khoan;</div><div>&nbsp; &nbsp; <strong>public</strong> UsingThisExample(String website, String subject)<br> {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ten khach hang = ten_khach_hang;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; so tien trong tai khoan = so_tien_trong_tai_khoan;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; <strong>public</strong> <strong>void</strong> print() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("ma khach hang = " + ma_khach_hang);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; <strong>this</strong>.printten_khach_hang();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; <strong>this</strong>.printso tien_trong_tai_khoan();</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; <strong>private</strong> <strong>void</strong> printWebsite() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("so tien trong tai khoan = " + so_tien_trong_tai_khoan);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; <strong>private</strong> <strong>void</strong> printSubject() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("ten khach hang = " + ten_khach_hang);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; <strong>public</strong> <strong>static</strong> <strong>void</strong> main(String[] args) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; UsingThisExample ex1 = <strong>new</strong> UsingThisExample("ten ngan hang", "AC");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ex1.print();</div><div>&nbsp; &nbsp; }</div><div>}</div><div><br>Kết quả:&nbsp;<br>ma khach hang = 0</div><div>tien trong tai khoan = <strong>null</strong></div><div>ten khach hang = <strong>null</strong></div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361627839/6c10750873ecdc25fb42a56cd58474a9/OIF.jfif" />
         <pubDate>2021-10-27 06:52:55 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847399929</guid>
      </item>
      <item>
         <title>Câu 1. Lớp (Class) trong Java</title>
         <author>phanhieuu0209</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847418432</link>
         <description><![CDATA[<div>-<strong>Khái niệm lớp trong Java:<br>-</strong>Lớp là một tập hợp các đối tượng có cùng trạng thái và hành vi, vì vậy nó định nghĩa các tính chất của một tập hợp các đối tượng cùng kiểu<strong>.<br></strong>+VD:<br>public class Account {</div><div>&nbsp; &nbsp; private long soTK;</div><div>&nbsp; &nbsp; private String tenTK;</div><div>&nbsp; &nbsp; private double soTienTrongTK;</div><div>&nbsp; &nbsp; Scanner sc = new Scanner(System.in);<br><br>-<em>Lớp</em> được <em>khai báo</em> bằng việc sử dụng từ khóa <strong><em>class<br><br>-Thành phần của một lớp(class):</em></strong><em><br>+</em><strong>access_modifier:</strong> phạm vi truy cập của lớp, thuộc tính và phương thức.</div><div>+<strong>Tên lớp (</strong><strong><em>class name</em></strong><strong>):</strong> mỗi lớp có một tên duy nhất để phân biệt với các lớp khác trong cùng một phạm vi.</div><div>+<strong>Các thuộc tính (</strong><strong><em>attributes</em></strong><strong>):</strong> mô tả các trường để lưu dữ liệu cho mỗi đối tượng của lớp đang mô tả hay là lưu các tham chiếu đến các đối tượng của lớp khác.</div><div>+<strong>Hệ thống các phương thức của lớp (</strong><strong><em>methods</em></strong><strong>):</strong> mỗi phương thức của lớp thực chất là một hàm được viết riêng cho các đối tượng của lớp, chỉ được phép gọi để tác động lên chính các đối tượng của lớp này.<br><br></div>]]></description>
         <enclosure url="https://laptrinhvienjava.com/wp-content/uploads/2020/12/abstract-class-trong-java.jpg" />
         <pubDate>2021-10-27 07:03:05 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847418432</guid>
      </item>
      <item>
         <title>Câu 3 :  phương thức của lớp</title>
         <author>somtro91</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847433991</link>
         <description><![CDATA[<div><strong><em>Phương thức</em></strong>, hay còn gọi là <strong><em>Method</em></strong>. Một số tài liệu khác gọi là <strong><em>Hàm</em></strong>. <em>Các phương thức này là các hành động của một lớp</em>. Sau này khi các đối tượng được tạo ra từ lớp, thì các hành động này cũng chính là các hành động hay các hành vi của đối tượng đó.<br><br><br></div><pre><strong>
</strong>❖Cách khai báo và sử dụng phương thức
 trong Java. Cho ví dụ.
 public static int tenPhuongThuc(int a, int b) {
 // phan than phuong thuc
 }
 Ở đây:
 - public static : Là modifier.
 - int: Kiểu trả về
 - tenPhuongThuc: Tên phương thức
 - a, b: Các tham số chính thức
 - int a, int b: Danh sách các tham số
<strong>
</strong>* Để sử dụng một phương thức,có thể được gọi thực hiện thông qua
 tên phương thức. . Có hai cáchgọi một phương thức, phương thức
 trả về một giá trị hoặc phương thức không trả về giá trị nào.Tiến
 trình gọi phương thức là đơn giản. Khi một chương trình gọi phương
 thức, điều khiển chương trình truyền tín hiệu tới phương thức được
 gọi. Phương thức được gọi này sau đó trả về điều khiển tới caller
 trong hai điều kiện, khi:
 +Lệnh return được thực thi.
 +Tiến tới dấu ngoặc đóng ở cuối phương thức.
 Phương thức trả về void được xem như là gọi tới một lệnh.
 VD: class myStore
 static void Hello() {
 System.out.println("Hello guest!");
 }
 public static void main(String[ ] args) {
 Hello();
 } </pre>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361626935/074a5cb8c7535caef4663f825e978d9e/t_i_xu_ng.png" />
         <pubDate>2021-10-27 07:11:43 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847433991</guid>
      </item>
      <item>
         <title>Câu 2: Đối tượng (object) trong Java</title>
         <author>phanhieuu0209</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847436113</link>
         <description><![CDATA[<div><strong>-Khái niệm: </strong>đối tượng là một khái niệm được dùng để chỉ một thực thể cụ thể có trạng thái và hành vi. Một thực thể sẽ không được gọi là đối tượng nếu thực thể đó không thỏa mãn một trong các điều kiện trên.<br><strong>-Phân biệt khái niệm lớp và đối tượng:</strong><br>+Lớp là một kế hoạch chi tiết (blueprint) hoặc nguyên mẫu (prototype) gồm các biến và các phương thức (hàm) chung cho tất cả các đối tượng thuộc cùng một loại. <br>+Một đối tượng là thực thể cụ thể của lớp. Các đối tượng phần mềm thường được sử dụng để mô hình hoá các đối tượng trong thế giới thực trong cuộc sống hàng ngày.<br><strong>-Ví Dụ:<br></strong>public class Main {</div><div>&nbsp; &nbsp; static Scanner sc = new Scanner(System.in);</div><div>&nbsp; &nbsp; static void nhapTK(Account tk) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Nhập số tài khoản: ");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; tk.setSoTK(sc.nextInt());</div><div>&nbsp; &nbsp; &nbsp; &nbsp; sc.nextLine();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Nhập tên tài khoản: ");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; tk.setTenTK(sc.nextLine());</div><div>&nbsp; &nbsp; &nbsp; &nbsp; tk.setSoTienTrongTK(50);</div><div>&nbsp; &nbsp; }</div><div><br><br></div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1401612320/0878078b4f9540aef1da56c15899e718/khai_niem_lap_trinh_huong_doi_tuong_trong_java_java_oops_concepts.jpg" />
         <pubDate>2021-10-27 07:12:48 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847436113</guid>
      </item>
      <item>
         <title>8. Hàm tạo trong java </title>
         <author>nambolo123</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847436171</link>
         <description><![CDATA[<ul><li><strong><em>Hàm tạo constructor là gì?</em></strong></li></ul><div>-&nbsp;<strong>Constructor trong Java</strong> (<strong>Hàm tạo trong Java</strong>) là một block code được gọi khi một thể hiện của một đối tượng được tạo và bộ nhớ được cấp phát cho đối tượng đó.<br>- <strong>Constructor </strong>là một loại phương thức đặc biệt được sử dụng để khởi tạo một đối tượng. Bạn cũng có thể sử dụng <strong>access modifiers</strong> trong khi khai báo <strong>Constructor</strong>.</div><ul><li><strong><em>Cách khai báo và sử dụng constructor.</em></strong></li></ul><div>- Cách khai báo:<br>class NameClass</div><div>{</div><div>&nbsp; &nbsp; NameClass(tham số (có <em>thể</em> có hoặc không)){</div><div>&nbsp; &nbsp; &nbsp; &nbsp; các câu lệnh;</div><div>&nbsp; &nbsp; }</div><div>}<br>- Sử dụng constructor:<br>+ khi ta khai báo 1 biến trong class các câu lệnh trong hàm tạo sẽ được thực hiện.</div><ul><li><strong><em>Ví dụ minh họa:</em></strong></li></ul><div>class Kh_hang</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int tien_gui;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; String ngay_gui;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; public</div><div>&nbsp; &nbsp; &nbsp; &nbsp; kh_hang(int <em>n</em>, String <em>D</em>){</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tien_gui = <em>n</em>;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ngay_gui = <em>D</em>;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; }</div><ul><li><strong><em>Phân biệt sự khác nhau giữa constructor và&nbsp; phương pháp thông thường.</em></strong></li></ul><div><br></div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361625126/576d0f397eb15f7701a4c4e07818480b/image.png" />
         <pubDate>2021-10-27 07:12:50 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847436171</guid>
      </item>
      <item>
         <title>9. Nạp chồng trong Java</title>
         <author>nambolo123</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847459156</link>
         <description><![CDATA[<ul><li><strong><em>Nạp chồng là gì?</em></strong></li></ul><div>- Nạp chồng phương thức trong java xảy ra nếu một lớp có nhiều phương thức có tên giống nhau nhưng khác nhau về kiểu dữ liệu hoặc số lượng các tham số.</div><ul><li><strong><em>Các cách sử dụng nạp chồng trong java.</em></strong></li></ul><div>- Có 2 cách nạp chồng:<br>+ thay đổi số lượng của tham số.<br>+ thay đổi kiểu dữ liệu của các tham số.</div><ul><li><strong><em>Ví dụ minh họa:</em></strong></li></ul><div>&nbsp;class kh_hang{</div><div>&nbsp; &nbsp; &nbsp; &nbsp; void nop_tien(int <em>n</em>){};</div><div>&nbsp; &nbsp; &nbsp; &nbsp; void nop_tien(float <em>n</em>){};</div><div>&nbsp; &nbsp; &nbsp; &nbsp; void nop_tien(double <em>n</em>, String <em>Date</em>){};</div><div>&nbsp; &nbsp; }</div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361625126/408308cd70fd457a08a70a38d3538761/image.png" />
         <pubDate>2021-10-27 07:23:08 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847459156</guid>
      </item>
      <item>
         <title>Câu 10 ghi đè trong Java </title>
         <author>nguyenchuong22062002</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847467986</link>
         <description><![CDATA[<div>Trong Java, overriding được định nghĩa là ghi đè phương thức, có nghĩa là khi một lớp con kế thừa trực tiếp từ một lớp cha thì lớp con đó có thể định nghĩa lại một phương thức đã có trong lớp cha cho phù hợp với mục đích của nó.<br><br><strong><br>Cách ghi đè phương thức<br></strong><br></div><ul><li>Danh sách các đối số phải giống với phương thức được ghi đè.</li><li>Kiểu trả về phải giống với kiểu trả về được khai báo trong phương thức được ghi đè của lớp cha.</li><li>Mức truy cập của phương thức ghi đè phương thức ở lớp cha không được nhỏ hơn phương thức đó trong lớp cha. Ví dụ: phương thức trong lớp cha được khai báo là public thì phương thức ghi đè phương thức đó trong lớp con không thể có phạm vi truy cập là private hoặc protected.</li><li>Một phương thức được khai báo là final hoặc static thì phương thức không thể được ghi đè.</li><li>Các hàm tạo của lớp cha không thể được ghi đè.</li></ul><div>Vi dụ trong đề tài : quản lý tiền trong ngân hàng : <br><br><strong><br>Superclass.java<br><br></strong>package viduoverriding;</div><div>&nbsp;</div><div>public class Superclass {</div><div>&nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; public void hienThi() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Đây là số tiền hiển thị của khách hàng Superclass.");</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;</div><div>}<br><br><strong>Subclass.java<br></strong>package viduoverriding;</div><div>&nbsp;</div><div>public class Subclass extends Superclass {</div><div>&nbsp;</div><div>&nbsp; &nbsp; @Override</div><div>&nbsp; &nbsp; public void hienThi() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Đây là số tiền&nbsp; của&nbsp; tai khoản 1&nbsp; .");</div><div>&nbsp; &nbsp; }</div><div>&nbsp;</div><div>}<br><br><strong>TestOverriding.java<br><br></strong>package viduoverriding;</div><div>&nbsp;</div><div>public class TestOverriding {</div><div>&nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; public static void main(String[] args) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // khai báo đối tượng của lớp Superclass</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Superclass superclass = new Superclass();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // khai báo đối tượng có bản chất là Superclass</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // nhưng đóng vai trò là 1 Subclass</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // vì vậy sẽ chạy những hàm của Subclass</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Superclass subclass = new Subclass();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // gọi phương thức hienThi() của lớp cha</div><div>&nbsp; &nbsp; &nbsp; &nbsp; superclass.hienThi();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // gọi phương thức hienThi() của lớp con</div><div>&nbsp; &nbsp; &nbsp; &nbsp; subclass.hienThi();</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;</div><div>}<br><br>kết quả&nbsp;<br>Đây là số tiền hiển thị của khách hàng<br>Đây là số tiền&nbsp; của&nbsp; tai khoản 1<br><br><br></div><div><br></div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361642514/8ba690dd6495b7638a97be05b0cc38a3/image.png" />
         <pubDate>2021-10-27 07:27:18 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847467986</guid>
      </item>
      <item>
         <title>Câu 4: thuộc tính của lớp</title>
         <author>somtro91</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847495972</link>
         <description><![CDATA[<div>1.Để khai báo một thuộc tính thì chúng ta có cú pháp sau.<br><br></div><div><br></div><div>Sau này khi các đối tượng được tạo ra từ lớp, thì các thuộc tính của lớp lúc này sẽ trở thành các đặc điểm của đối tượng đó.<br>Cú pháp khai báo chi tiết một thuộc tính trong khi tạo lớp là như sau:<br>&nbsp;[bổ_từ_truy_cập] kiểu_dữ_liệu tên_thuộc tính;<br>&nbsp;2<br>bổ_từ_truy_cập: Là một từ khóa tùy chọn xác định mức độ truy cập của một biến thể hiện, nó có thể là&nbsp;<br>&nbsp;Các bổ từ truy cập<br>&nbsp;Trường hợp ta không đưa vào bổ từ truy cập thì bổ từ truy cập mặc định sẽ là package. Xem chi tiết về bổ từ truy cập tại phần&nbsp;<br>&nbsp;kiểu_dữ_liệu: Xác định kiểu dữ liệu của biến.<br>&nbsp;tên_thuộc_tính: Xác định tên của biến.<br>&nbsp;Các thuộc tính được khai báo theo cách tương tự với các biến cục bộ, nhưng phải nằm bên ngoài bất kỳ một định nghĩa phương thức nào.<br><br></div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361626935/e31db9e7520794e4e82c5f0645c110ad/blank_diagram_page_2.png" />
         <pubDate>2021-10-27 07:41:57 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847495972</guid>
      </item>
      <item>
         <title>câu 11  các tính chất  của hướng đối tượng trong java</title>
         <author>nguyenchuong22062002</author>
         <link>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847539259</link>
         <description><![CDATA[<div><strong><br>1. Khái niệm tính kế thừa<br></strong>Khái niệm "<em>kế thừa</em>" thường được dùng trong các ngôn ngữ lập trình hướng đối tượng để chuyển quan hệ tổng quát hóa và đặc biệt hóa của thế giới thực vào các chương trình máy tính. Tính kế thừa cho phép ta xây dựng một lớp mới dựa trên các định nghĩa của một lớp đã có.<br><br></div><div><br></div><div><br></div><div><strong><br>2. Ví dụ về tính kế thừa<br></strong>Để cài đặt tính kế thừa, chúng ta sẽ sử dụng từ khóa extends. Giả sử chúng ta có 1 lóp A kế thừa từ lớp B thì chúng ta sẽ khai báo lớp B theo cú pháp như sau:<br><br><br><br><strong>Calculate.java<br><br></strong>package vidu;</div><div>&nbsp;</div><div>public class Calculation {</div><div>&nbsp; &nbsp; protected int c;</div><div>&nbsp; &nbsp; public void phepCongTien(int a, int b) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; c = a + b;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Tổng hai số tiền cho khách hàng = " + c);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; public void phepTruTien(int a, int b) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; c = a - b;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Trừ&nbsp; tiền thừa cho khách hàng= " + c);</div><div>&nbsp; &nbsp; }</div><div>}<br><strong>MyCalculation.java<br><br></strong>package vidu;</div><div>&nbsp;</div><div>public class MyCalculation extends Calculation {</div><div>&nbsp; &nbsp; public void phepNhanTien(int a, int b) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; c = a * b;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Nhân 2 số&nbsp; tiền cho khách hàng = " + c);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; public static void main(String[] args) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int a = 12, b = 2;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; MyCalculation myCalculation = new MyCalculation();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; myCalculation.phepCong(a, b);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; myCalculation.phepTru(a, b);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; myCalculation.phepNhan(a, b);&nbsp;</div><div>&nbsp; &nbsp; }</div><div>}<br><br><br><br></div><div><strong>2. Khái niệm tính đóng gói<br><br></strong>Đóng gói là sự che giấu bên trong dữ liệu riêng của mỗi đối tượng của lớp được khai báo và chỉ được truy xuất thông qua hệ thống các phương thức có sẵn của lớp (<em>chỉ có thể gọi những phương thức có sẵn của lớp</em>). Vì vậy, nó còn được gọi là <strong>data hiding</strong> (<em>nghĩa là che giấu dữ liệu</em>).<br><br></div><div>Tính đóng gói có những đặc điểm như sau:<br><br></div><ul><li>Tạo ra cơ chế để ngăn ngừa việc gọi phương thức của lớp này tác động hay truy xuất dữ liệu của đối tượng thuộc về lớp khác.</li><li>Dữ liệu riêng (<em>khi được khai báo là private</em>) của mỗi đối tượng được bảo vệ khỏi sự truy xuất không hợp lệ từ bên ngoài.</li><li>Người lập trình có thể dựa vào cơ chế này để ngăn ngừa việc gán giá trị không hợp lệ vào thành phần dữ liệu của mỗi đối tượng.</li><li>Cho phép thay đổi cấu trúc bên trong của một lớp mà không làm ảnh hưởng đến những lớp bên ngoài có sử dụng lớp đó.</li></ul><div><br></div><div>Ví dụ tính đóng gói&nbsp;<br>package vidu;</div><div>&nbsp;</div><div>public class Person {</div><div>&nbsp; &nbsp; // khai báo các thuộc tính của đối tượng là private</div><div>&nbsp; &nbsp; private String stk;</div><div>&nbsp; &nbsp; private String hoTenKhachHang;</div><div>&nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; // tạo các phương thức getter/setter</div><div>&nbsp; &nbsp; // 2 phương thức getCmnd() và getHoTen() là phương thức getter</div><div>&nbsp; &nbsp; // dùng để trả về số chứng minh nhân dân và họ tên của đối tượng</div><div>&nbsp; &nbsp; // và kiểu trả về của hai phương thức này tương ứng với kiểu dữ liệu của thuộc tính</div><div>&nbsp; &nbsp; // 2 phương thức setCmnd() và setHoTen() là phương thức setter</div><div>&nbsp; &nbsp; // dùng để gán giá trị cho thuộc tính chứng minh nhân dân và họ tên của đối tượng</div><div>&nbsp; &nbsp; // trong đó tham số truyền vào của 2 phương thức này được gọi là tham số (biến cục bộ)</div><div>&nbsp; &nbsp; // và có kiểu dữ liệu tương ứng với kiểu dữ liệu của thuộc tính (biến đối tượng)</div><div>&nbsp; &nbsp; public String getStk() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return stk;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; // this là từ khóa có ý nghĩa là một tham chiếu đặc biệt&nbsp;</div><div>&nbsp; &nbsp; // chiếu tới đối tượng chủ của phương thức hiện hành</div><div>&nbsp; &nbsp; // this có thể được dùng để truy cập biến đối tượng (instance variable)</div><div>&nbsp; &nbsp; // hoặc gọi phương thức đối với đối tượng hiện hành.&nbsp;</div><div>&nbsp; &nbsp; // Thông thường, công dụng này của this chỉ có ích</div><div>&nbsp; &nbsp; // khi tên biến đối tượng bị trùng với tham số (biến cục bộ - local variable) của phương thức&nbsp;</div><div>&nbsp; &nbsp; public void setStk(String stk) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; this.stk = stk;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; public String getHoTen() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return hoTen;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; public void setHoTen(String hoTen) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; this.hoTenKhachHang = hoTenKhachHang;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp;</div><div>}<br><br><strong>TestPerson.java<br><br></strong>package vidu;</div><div>&nbsp;</div><div>public class TestPerson {</div><div>&nbsp;</div><div>&nbsp; &nbsp; public static void main(String[] args) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Person person = new Person();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // gán giá trị họ tên cho đối tượng person vừa tạo thông qua setHoTen()&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // và gán số chứng minh nhân dân thông qua setCmnd()</div><div>&nbsp; &nbsp; &nbsp; &nbsp; person.setHoTen("Trần Văn Bình");&nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; person.setStk("212321678");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // truy cập đến tên của đối tượng person thông qua phương thức getHoten()</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // và số chứng minh nhân dân thông qua phương thức getCmnd()</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Tên khách hàng: " + person.getHoTen() + ", số&nbsp; tài khoản: " + person.getStk());</div><div>&nbsp; &nbsp; }</div><div>&nbsp;</div><div>}<br>kết quả <br>tên khách hàng : Chương đẹp trai<br>stk : 087765789<br><br><strong><br>3. Khái niệm tính đa hình<br></strong><br></div><div>Tính đa hình (<em>Polymorphism</em>) trong Java được hiểu là trong từng trường hợp, hoàn cảnh khác nhau thì đối tượng có hình thái khác nhau tùy thuộc vào từng ngữ cảnh. Đối tượng có tính đa hình được xem như một đối tượng đặc biệt vì có lúc đối tượng này trở thành một đối tượng khác và cũng có lúc đối tượng này trở thành một đối tượng khác nữa (<em>tùy vào từng hoàn cảnh</em>). Sự "<em>nhập vai</em>" vào các đối tượng khác nhau này giúp cho đối tượng đa hình ban đầu có thể thực hiện những hành động khác nhau của từng đối tượng cụ thể.<br><br></div><div><br></div><div>Để thể hiện tính đa hình, chúng ta cần đảm bảo 2 điều kiện sau:<br><br></div><ul><li>Các lớp phải có quan hệ kế thừa với 1 lớp cha nào đó.</li><li>Phương thức đa hình phải được ghi đè (<em>override</em>) ở lớp con. Tính đa hình chỉ được thể hiện ghi đã ghi đè lên phương thức của lớp cha.</li></ul><div><br>ví dụ<br>package vidu;</div><div>&nbsp;</div><div>public class Shape {</div><div>&nbsp; &nbsp; public void show() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Đây là phương thức thanh toán của tài khoản 1");</div><div>&nbsp; &nbsp; }</div><div>}<br><br>package vidu;</div><div>&nbsp;</div><div>public class Rectangle extends Shape {</div><div>&nbsp; &nbsp; public void show() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Đây là phương thức thanh toán tài khoản 2");</div><div>&nbsp; &nbsp; }</div><div>}<br><br>package vidu;</div><div>&nbsp;</div><div>public class Square extends Shape {</div><div>&nbsp; &nbsp; public void show() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Đây là phương thức thanh toán của tài khoản 3 ");</div><div>&nbsp; &nbsp; }</div><div>}<br><br><strong>Main.java<br></strong>package vidu;</div><div>&nbsp;</div><div>public class Main {</div><div>&nbsp;</div><div>&nbsp; &nbsp; public static void main(String[] args) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Shape shape = new Shape();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; shape.show(); &nbsp; // hiển thị dòng "Đây là phương thức&nbsp; thanh toán của tk1"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // bản chất của shape là Shape, nhưng vì khai báo Rectangle nên chúng ta chỉ nhìn thấy những gì mà Rectangle có</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // vì vậy sẽ chạy những hàm của Rectangle</div><div>&nbsp; &nbsp; &nbsp; &nbsp; shape = new Rectangle();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; shape.show(); &nbsp; // hiển thị dòng "Đây là phương thức thanh toáncủa tk2"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // tương tự lúc này shape sẽ đóng vai trò là 1 Square</div><div>&nbsp; &nbsp; &nbsp; &nbsp; shape = new Square();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; shape.show(); &nbsp; // hiển thị dòng "Đây là phương thức của tài khoản 3"</div><div>&nbsp; &nbsp; }</div><div>&nbsp;kết quả<br><br></div><div>Đây là phương thức&nbsp; thanh toán của tk1<br>Đây là phương thức thanh toáncủa tk2<br>Đây là phương thức của tài khoản 3<br><br><strong><br>4. Khái niệm tính trừu tượng<br></strong><br></div><div>Tính trừu tượng trong Java là tính chất không thể hiện cụ thể mà chỉ nêu tên vấn đề. Đó là một quá trình che giấu các hoạt động bên trong và chỉ hiển thị những tính năng thiết yếu của đối tượng tới người dùng. Ví dụ: một người sử dụng điện thoại để gửi tin nhắn thì anh ta sẽ nhập nội dung tin nhắn, thông tin người nhận và ấn nút gửi. Khi anh ta bắt đầu gửi tin thì anh ấy không biết những gì diễn ra bên trong quá trình gửi mà chỉ biết được là kết quả của tin nhắn đã được gửi đến người nhận thành công hay chưa. Vì vậy trong ví dụ này, quá trình gửi tin nhắn đã được ẩn đi và chỉ hiển thị những chức năng mà người dùng cần đó là chức năng nhập nội dung tin nhắn, thông tin người nhận, kết quả gửi tin nhắn thành công hay thất bại. Đó chính là tính trừu tượng.<br><br></div><div><br><br></div><div>Cú pháp khai báo phương thức trừu tượng:<br><br></div><div><strong><br>Cú pháp</strong></div><div>1 | [access_modifier] abstract [kiểu_trả_về] [tên_phương_thức_trừu_tượng] [&lt;đối_số_truyền_vào&gt;];</div><div><strong><br><br>AbstractClassDemo<br><br></strong>package vidu;</div><div>&nbsp;</div><div>public abstract class AbstractClassDemo {</div><div>&nbsp; &nbsp; public void hienThi() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Đây là lớp trừu tượng");</div><div>&nbsp; &nbsp; }</div><div>&nbsp;</div><div>&nbsp; &nbsp; // khai báo 1 phương thức abstract có tên là hienThi()</div><div>&nbsp; &nbsp; // phương thức này không có thân phương thức</div><div>&nbsp; &nbsp; // và có kiểu trả về là void</div><div>&nbsp; &nbsp; public abstract void show();</div><div>}<br>package vidu;<br>&nbsp;<br>public abstract class Money {<br>&nbsp; &nbsp; private String kieuTien;<br>&nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; public abstract void hienThiKieuTien();<br>}<br><br>package vidu;</div><div>&nbsp;</div><div>public class Dola extends Money {</div><div>&nbsp;</div><div>&nbsp; &nbsp; @Override</div><div>&nbsp; &nbsp; public void hienThiKieuTien() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("USD");</div><div>&nbsp; &nbsp; }</div><div>&nbsp;</div><div>}<br><br>package vidu;</div><div>&nbsp;</div><div>public class TienViet extends Money {</div><div>&nbsp;</div><div>&nbsp; &nbsp; @Override</div><div>&nbsp; &nbsp; public void hienThiKieuTien() {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("VNĐ");</div><div>&nbsp; &nbsp; }</div><div>&nbsp;</div><div>}<br><br><strong>Main.java<br></strong>package vidu;</div><div>&nbsp;</div><div>public class Main {</div><div>&nbsp;</div><div>&nbsp; &nbsp; public static void main(String[] args) {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Dola dola = new Dola();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; dog.hienThiKieuTien();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Cat cat = new Cat();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; cat.hienThiKieuTien();</div><div>&nbsp; &nbsp; }</div><div>&nbsp;</div><div>}<br>kết quả&nbsp;<br>USD<br>VNĐ</div><div><br><br><br><br></div><div><br><br><br><br></div>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/1361642514/8ceb0b89b418fc8a5b212e378b62d388/image.png" />
         <pubDate>2021-10-27 08:04:27 UTC</pubDate>
         <guid>https://padlet.com/nambolo123/2w0lwvbjm8sdv6qm/wish/1847539259</guid>
      </item>
   </channel>
</rss>
