[
  
    {
      "title"       : "Project",
      "category"    : "oop",
      "tags"        : "java, oop, basic",
      "url"         : "./project.html",
      "date"        : "2021-09-06 00:00:00 +0000",
      "description" : "",
      "content"     : "Ở bài này, chúng ta sẽ cùng viết một vài method cơ bản cho các đối tượng đã tạo ở những bài trước đó. Cũng giống như các class có sẵn trong Java, mỗi class đều có các method riêng của class đó để cung cấp các chức năng cụ thể để làm việc với class đó.Vì vậy đầu tiên chúng ta cần xác định các chức năng cần có để có thể làm việc với các đối tượng Person, Student và Staff.I. Xác định các method Những method viết trong class là những method tương tác trực tiếp với các thuộc tính của class đó.Vậy nên tạm thời chúng ta có thể xác định được 2 method cơ bản cần viết đầu tiên là: input(): nhập dữ liệu từ bàn phím vào các thuộc tính. display(): hiển thị các thuộc tính của đối tượng.Chúng ta có thể bổ sung thêm các method mới bất cứ khi nào chúng ta cần.II. Triển khai vào dự ánSau khi đã xác định cần làm gì, chúng ta sẽ thực hiện viết mã vào dự án theo các bước sau: Trong class entity.Person: Chúng ta sẽ viết method display() để hiển thị một đối tượng Person như sau: package entity;public class Person { private String rollNumber; private String name; private boolean gender; private String dob; private String email; private String mobile; private String address; // getter &amp; setter public void display() { System.out.printf( \"| %10s | %16s | %5s | %12s | %28s | %12s | %12s |\", rollNumber, name, gender ? \"Nam\" : \"Nữ\", dob, email, mobile, address ); }} Tiếp theo chúng ta sẽ sử dụng lớp Scanner để viết method input() - lấy các giá trị từ bàn phím gán vào các thuộc tính của đối tượng như sau: package entity;public class Person { private String rollNumber; private String name; private boolean gender; private String dob; private String email; private String mobile; private String address; // getter &amp; setter public void display() { System.out.printf( \"| %10s | %16s | %5s | %12s | %28s | %12s | %12s |\", rollNumber, name, gender ? \"Nam\" : \"Nữ\", dob, email, mobile, address ); } public void input() { Scanner scanner = new Scanner(System.in); System.out.print(\"\\nEnter rollNumber: \"); this.rollNumber = scanner.nextLine().trim(); System.out.print(\"Enter name: \"); this.name = scanner.nextLine().trim(); System.out.print(\"Enter gender: \"); this.gender = Boolean.parseBoolean(scanner.nextLine().trim()); System.out.print(\"Enter dob (DD/MM/YYYY): \"); this.dob = scanner.nextLine().trim(); System.out.print(\"Enter email: \"); this.email = scanner.nextLine().trim(); System.out.print(\"Enter mobile: \"); this.mobile = scanner.nextLine().trim(); System.out.print(\"Enter address: \"); this.address = scanner.nextLine().trim(); }} Trong class entity.Student: Chúng ta sẽ kế thừa method display() từ class Person và viết lại mã cho phù hợp như sau: package entity;public class Student extends Person { private double mark; // getter &amp; setter @Override public void display() { super.display(); System.out.printf(\"%6s |\\n\", mark); }} Tương tự với method input() như sau: package entity;public class Student extends Person { private double mark; // getter &amp; setter @Override public void display() { super.display(); System.out.printf(\"%6s |\\n\", mark); } @Override public void input() { Scanner scanner = new Scanner(System.in); super.input(); System.out.print(\"Enter mark: \"); this.mark = Double.parseDouble(scanner.nextLine().trim()); }} Thực hiện tương tự đối với đối tượng Staff, trong phạm vi bài viết từ nay về sau, chúng ta sẽ chỉ triển khai mã ví dụ với chỉ đối tượng Student. III. Manual testingCấu trúc dự án hiện tại:Project/ └──src/ ├──entity │ ├──Person.java │ ├──Staff.java │ └──Student.java └──main └──Main.javaSau khi triển khai viết mã cho những method đầu tiên, chúng ta sẽ viết mã kiểm tra xem mã đã viết có chạy đúng như yêu cầu mong muốn hay không, mã kiểm tra sẽ được viết trong class Main.package main;import entity.Student;public class Main { public static void main(String[] args) { Student student = new Student(); // create instance Student student.input(); // call method input() student.display(); // call method display() }}Kết quả nhận được:Enter rollNumber: HE150345Enter name: Tuan AnhEnter gender: trueEnter dob (DD/MM/YYYY): 11/11/1994Enter email: AnhDTHE150345@fpt.edu.vnEnter mobile: 0973876107Enter address: Ha NoiEnter mark: 8.5| HE150345 | Tuan Anh | Nam | 11/11/1994 | AnhDTHE150345@fpt.edu.vn | 0973876107 | Ha Noi | 8.5 |© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "Wrapper class",
      "category"    : "oop",
      "tags"        : "java, oop, basic",
      "url"         : "./wrapper-class.html",
      "date"        : "2021-09-02 00:00:00 +0000",
      "description" : "",
      "content"     : "Trong Java, kiểu dữ liệu được chia làm hai loại: Kiểu dữ liệu nguyên thuỷ (Primitive data types) Kiểu dữ liệu không nguyên thuỷ (Non-primitive data types).Thông thường, để phân biệt 2 kiểu này ta dựa vào tên của nó. Kiểu nguyên thủy có tên bắt đầu bằng chữ thường, các kiểu không nguyên thuỷ có tên bắt đầu bằng chữ in hoa.Ví dụ: int, long, float, double là kiểu nguyên thủy Integer,Long, Float, Double là kiểu không nguyên thuỷI. Primitive data typesCác bạn có thể đọc lại bài sau Data typesII. Non-primitive data types1. Kiểu dữ liệu đối tượngTrong java có 3 kiểu dữ liệu đối tượng: No Type Description 1 Array Một mảng của các dữ liệu cùng kiểu. 2 class Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa. Chứa tập các thuộc tính và phương thức. 3 interface Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa. Chứa các phương thức của giao tiếp. Chúng ta sẽ tìm hiểu chi tiết những đối tượng này ở những bài sau.2. Wrapper classLớp Wrapper trong java cung cấp cơ chế để chuyển đổi kiểu dữ liệu nguyên thủy thành kiểu đối tượng và ngược lại từ đối tượng thành kiểu dữ liệu nguyên thủy. No Kiểu nguyên thủy Kiểu Wrapper 1 boolean Boolean 2 char Character 3 byte Byte 4 short Short 5 int Integer 6 long Long 7 float Float 8 double Double Ví dụ chuyển đổi int thành Integer:public class SampleClass { public static void main(String[] args) { int num1 = 1; Integer num2 = Integer.valueOf(num1); }}Tại sao phải chuyển đổi kiểu dữ liệu nguyên thủy thành kiểu đối tượng?Như chúng ta đã tìm hiểu về đối tượng, thì một đối tượng sẽ có thuộc tính và phương thức còn dữ liệu nguyên thủy thì không. Trong Java, có sẵn rất nhiều phương thức được cung cấp theo từng class có chức năng cụ thể để làm việc với class đó.Sau khi một giá trị nguyên thủy được chuyển đổi thành đối tượng, nó có thể gọi được các phương thức của class đó ra để sử dụng. Nếu bạn thử lấy num1 gọi các phương thức của class Integer thì chương trình sẽ báo lỗi vì num1 là kiểu dữ liệu nguyên thủy. Nhưng sau khi chúng ta chuyển đổi num1 thành đối tượng num2 bằng cách sử dụng phương thức valueOf() được cung cấp sẵn trong class Integer thì num2 có thể gọi các phương thức của class Integer một cách bình thường.Vì trong Java cung cấp rất nhiều phương thức có sẵn đi theo từng class nên chúng ta có thể sử dụng phím tắt ctrl + space trong IDE để xem nhanh danh sách phương thức được cung cấp của class đó.Ví dụ chúng ta cần tìm số int lớn nhất bằng bao nhiêu? Trong class Integer đã có sẵn thuộc tính MAX_VALUE lưu trữ giá trị lớn nhất của int, chúng ta chỉ cần gọi nó ra là xong, không cần làm gì hay tính toán gì thêm.public class SampleClass { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE); }}Kết quả nhận được:2147483647© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "Wrapper class",
      "category"    : "oop",
      "tags"        : "java, oop, basic",
      "url"         : "./wrapper-class.html",
      "date"        : "2021-09-01 00:00:00 +0000",
      "description" : "",
      "content"     : "Trong Java, kiểu dữ liệu được chia làm hai loại: Kiểu dữ liệu nguyên thuỷ (Primitive data types) Kiểu dữ liệu không nguyên thuỷ (Non-primitive data types).Thông thường, để phân biệt 2 kiểu này ta dựa vào tên của nó. Kiểu nguyên thủy có tên bắt đầu bằng chữ thường, các kiểu không nguyên thuỷ có tên bắt đầu bằng chữ in hoa.Ví dụ: int, long, float, double là kiểu nguyên thủy Integer,Long, Float, Double là kiểu không nguyên thuỷI. Primitive data typesCác bạn có thể đọc lại bài sau Data typesII. Non-primitive data types1. Kiểu dữ liệu đối tượngTrong java có 3 kiểu dữ liệu đối tượng: No Type Description 1 Array Một mảng của các dữ liệu cùng kiểu. 2 class Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa. Chứa tập các thuộc tính và phương thức. 3 interface Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa. Chứa các phương thức của giao tiếp. Chúng ta sẽ tìm hiểu chi tiết những đối tượng này ở những bài sau.2. Wrapper classLớp Wrapper trong java cung cấp cơ chế để chuyển đổi kiểu dữ liệu nguyên thủy thành kiểu đối tượng và ngược lại từ đối tượng thành kiểu dữ liệu nguyên thủy. No Kiểu nguyên thủy Kiểu Wrapper 1 boolean Boolean 2 char Character 3 byte Byte 4 short Short 5 int Integer 6 long Long 7 float Float 8 double Double Ví dụ chuyển đổi int thành Integer:public class SampleClass { public static void main(String[] args) { int num1 = 1; Integer num2 = Integer.valueOf(num1); }}Tại sao phải chuyển đổi kiểu dữ liệu nguyên thủy thành kiểu đối tượng?Như chúng ta đã tìm hiểu về đối tượng, thì một đối tượng sẽ có thuộc tính và phương thức còn dữ liệu nguyên thủy thì không. Trong Java, có sẵn rất nhiều phương thức được cung cấp theo từng class có chức năng cụ thể để làm việc với class đó.Sau khi một giá trị nguyên thủy được chuyển đổi thành đối tượng, nó có thể gọi được các phương thức của class đó ra để sử dụng. Nếu bạn thử lấy num1 gọi các phương thức của class Integer thì chương trình sẽ báo lỗi vì num1 là kiểu dữ liệu nguyên thủy. Nhưng sau khi chúng ta chuyển đổi num1 thành đối tượng num2 bằng cách sử dụng phương thức valueOf() được cung cấp sẵn trong class Integer thì num2 có thể gọi các phương thức của class Integer một cách bình thường.Vì trong Java cung cấp rất nhiều phương thức có sẵn đi theo từng class nên chúng ta có thể sử dụng phím tắt ctrl + space trong IDE để xem nhanh danh sách phương thức được cung cấp của class đó.Ví dụ chúng ta cần tìm số int lớn nhất bằng bao nhiêu? Trong class Integer đã có sẵn thuộc tính MAX_VALUE lưu trữ giá trị lớn nhất của int, chúng ta chỉ cần gọi nó ra là xong, không cần làm gì hay tính toán gì thêm.public class SampleClass { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE); }}Kết quả nhận được:2147483647© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "OOP in Java",
      "category"    : "oop",
      "tags"        : "java, oop",
      "url"         : "./oop-in-java.html",
      "date"        : "2021-08-31 00:00:00 +0000",
      "description" : "ELI5: what is a neural network.",
      "content"     : "Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP.I. What is OOPLập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code - trừu tượng hóa các đối tượng trong cuộc sống vào trong code để tương tác - tính toán - xử lý.II. OOP in programmingGiả sử bạn đang muốn tạo ra một chiếc ô tô, vậy trước tiên bạn cần thiết kế ra một bản thiết kế của cái ô tô đó. Trong bản thiết kế đó sẽ phác thảo ra những thông tin, đặc điểm của chiếc ô tô cần có ví dụ như: tên, màu sắc, kích thước, trọng lượng… bên cạnh đó bạn cũng cần phải mô tả được những công dụng, thao tác, hành động mà chiếc ô tô đó có thể làm được.Và khi bạn đã có bản thiết kế thì bạn có thể tạo ra chiếc ô tô, chiếc ô tô này sẽ có các đặc điểm và hành động giống y bản thiết kế.Như trong cuộc sống, bạn chỉ cần có một bản thiết kế nhưng không vì vậy mà chỉ tạo được một chiếc ô tô - bạn có thể tạo ra được rất nhiều chiếc ô tô dựa trên một bản thiết kế và tất cả chiếc ô tô được tạo ra cùng một bản thiết kế thì đều có các đặc điểm và hành động giống nhau. Nhưng giá trị của những thông tin, đặc điểm sẽ có thể khác nhau hoặc trùng nhau ví dụ: có chiếc xe màu đỏ, có chiếc màu xanh, màu trắng…Mỗi chiếc ô tô tạo ra được xem là một thực thể (có thực, đã được tạo ra trong thực tế) thể hiện của bản thiết kế.1. ClassVậy class trong Java là gì? Nó được xem như là một bản thiết kế các đối tượng (object) trong lập trình.Một class là một kiểu dữ liệu (data type) bao gồm: thuộc tính (Property - Attribute): thể hiện qua biến (variable) phương thức (Method): thể hiện qua hàm (function)được định nghĩa từ trước.Khác với kiểu dữ liệu thông thường (nguyên thủy), một class là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các thuộc tính và các phương thức.2. Objectclass bạn có thể hiểu nó như là khuôn mẫu, bản thiết kế thì object là một thực thể thể hiện (instance) dựa trên khuôn mẫu đó. Hay như ở bối cảnh trên, object chính là những chiếc ô tô được tạo ra từ bản thiết kế. Trong lập trình, mặc định các object là khác nhau cho dù có cùng các giá trị thuộc tính và phương thức giống nhau.III. What are the main principles of OOPLập trình hướng đối tượng có 4 tính chất đặc thù sau: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tượng (Abstraction)Khái niệm cơ bản: Tính đóng gói nhằm bảo vệ đối tượng không bị truy cập từ code bên ngoài vào để thay để giá trị các thuộc tính hay có thể truy cập trực tiếp. Việc cho phép truy cập các giá trị của đối tượng tùy theo sự đồng ý của người viết ra lớp của đối tượng đó. Tính chất này đảm bảo sự bảo mật, toàn vẹn của đối tượng trong Java. Tính kế thừa cho phép chúng ta cải tiến chương trình bằng cách kế thừa lại lớp cũ và phát triển những tính năng mới. Lớp con sẽ kế thừa tất cả những thành phần của lớp cha, nhờ sự chia sẻ này mới có thể mở rộng những đặc tính sẵn có mà không cần phải định nghĩa lại. Tính đa hình có thể nói luôn tồn tại song song với tính kế thừa. Khi có nhiều lớp con kế thừa lớp cha nhưng có những tính chất khác nhau cũng gọi là đa hình, hoặc những tác vụ trong cùng một đối tượng được thể hiện nhiều cách khác nhau cũng gọi là đa hình. Tính đa hình là kết quả tất yếu khi ta phát triển khả năng kế thừa và nâng cấp chương trình. Tính trừu tượng là một tiến trình chỉ nói ra tính năng của người dùng, các khái niệm được định nghĩa trong quá trình phát triển, bỏ qua những chi tiết triển khai bên trong. Tính trừu tượng cho phép người lập trình tập trung cốt lõi cần thiết của đối tượng thay vì quan tâm sự phức tạo bên trong hoặc cách nó hoạt động. Trong các bài sau, chúng ta sẽ đi sâu và giải thích rõ hơn từng tính chất cụ thể ở trên và thực hiện code ví dụ minh họa - để có thể hiểu được những tính chất trên được thể hiện trong code như thế nào.IV. Advantages of object-oriented programming Dựa trên nguyên lý kế thừa, trong quá trình tạo - mô tả các class có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các class mà không cần thực hiện lại. Tối ưu và tái sử dụng code hiệu quả. Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện. Sự xuất hiện của 2 khái niệm mới là class và object chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.###© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "OOP in Java",
      "category"    : "oop",
      "tags"        : "java, oop",
      "url"         : "./oop-in-java.html",
      "date"        : "2021-08-30 00:00:00 +0000",
      "description" : "ELI5: what is a neural network.",
      "content"     : "Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP.I. What is OOPLập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code - trừu tượng hóa các đối tượng trong cuộc sống vào trong code để tương tác - tính toán - xử lý.II. OOP in programmingGiả sử bạn đang muốn tạo ra một chiếc ô tô, vậy trước tiên bạn cần thiết kế ra một bản thiết kế của cái ô tô đó. Trong bản thiết kế đó sẽ phác thảo ra những thông tin, đặc điểm của chiếc ô tô cần có ví dụ như: tên, màu sắc, kích thước, trọng lượng… bên cạnh đó bạn cũng cần phải mô tả được những công dụng, thao tác, hành động mà chiếc ô tô đó có thể làm được.Và khi bạn đã có bản thiết kế thì bạn có thể tạo ra chiếc ô tô, chiếc ô tô này sẽ có các đặc điểm và hành động giống y bản thiết kế.Như trong cuộc sống, bạn chỉ cần có một bản thiết kế nhưng không vì vậy mà chỉ tạo được một chiếc ô tô - bạn có thể tạo ra được rất nhiều chiếc ô tô dựa trên một bản thiết kế và tất cả chiếc ô tô được tạo ra cùng một bản thiết kế thì đều có các đặc điểm và hành động giống nhau. Nhưng giá trị của những thông tin, đặc điểm sẽ có thể khác nhau hoặc trùng nhau ví dụ: có chiếc xe màu đỏ, có chiếc màu xanh, màu trắng…Mỗi chiếc ô tô tạo ra được xem là một thực thể (có thực, đã được tạo ra trong thực tế) thể hiện của bản thiết kế.1. ClassVậy class trong Java là gì? Nó được xem như là một bản thiết kế các đối tượng (object) trong lập trình.Một class là một kiểu dữ liệu (data type) bao gồm: thuộc tính (Property - Attribute): thể hiện qua biến (variable) phương thức (Method): thể hiện qua hàm (function)được định nghĩa từ trước.Khác với kiểu dữ liệu thông thường (nguyên thủy), một class là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các thuộc tính và các phương thức.2. Objectclass bạn có thể hiểu nó như là khuôn mẫu, bản thiết kế thì object là một thực thể thể hiện (instance) dựa trên khuôn mẫu đó. Hay như ở bối cảnh trên, object chính là những chiếc ô tô được tạo ra từ bản thiết kế. Trong lập trình, mặc định các object là khác nhau cho dù có cùng các giá trị thuộc tính và phương thức giống nhau.III. What are the main principles of OOPLập trình hướng đối tượng có 4 tính chất đặc thù sau: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tượng (Abstraction)Khái niệm cơ bản: Tính đóng gói nhằm bảo vệ đối tượng không bị truy cập từ code bên ngoài vào để thay để giá trị các thuộc tính hay có thể truy cập trực tiếp. Việc cho phép truy cập các giá trị của đối tượng tùy theo sự đồng ý của người viết ra lớp của đối tượng đó. Tính chất này đảm bảo sự bảo mật, toàn vẹn của đối tượng trong Java. Tính kế thừa cho phép chúng ta cải tiến chương trình bằng cách kế thừa lại lớp cũ và phát triển những tính năng mới. Lớp con sẽ kế thừa tất cả những thành phần của lớp cha, nhờ sự chia sẻ này mới có thể mở rộng những đặc tính sẵn có mà không cần phải định nghĩa lại. Tính đa hình có thể nói luôn tồn tại song song với tính kế thừa. Khi có nhiều lớp con kế thừa lớp cha nhưng có những tính chất khác nhau cũng gọi là đa hình, hoặc những tác vụ trong cùng một đối tượng được thể hiện nhiều cách khác nhau cũng gọi là đa hình. Tính đa hình là kết quả tất yếu khi ta phát triển khả năng kế thừa và nâng cấp chương trình. Tính trừu tượng là một tiến trình chỉ nói ra tính năng của người dùng, các khái niệm được định nghĩa trong quá trình phát triển, bỏ qua những chi tiết triển khai bên trong. Tính trừu tượng cho phép người lập trình tập trung cốt lõi cần thiết của đối tượng thay vì quan tâm sự phức tạo bên trong hoặc cách nó hoạt động. Trong các bài sau, chúng ta sẽ đi sâu và giải thích rõ hơn từng tính chất cụ thể ở trên và thực hiện code ví dụ minh họa - để có thể hiểu được những tính chất trên được thể hiện trong code như thế nào.IV. Advantages of object-oriented programming Dựa trên nguyên lý kế thừa, trong quá trình tạo - mô tả các class có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các class mà không cần thực hiện lại. Tối ưu và tái sử dụng code hiệu quả. Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện. Sự xuất hiện của 2 khái niệm mới là class và object chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.###© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "OOP in Java",
      "category"    : "oop",
      "tags"        : "java, oop",
      "url"         : "./oop-in-java.html",
      "date"        : "2021-08-29 00:00:00 +0000",
      "description" : "ELI5: what is a neural network.",
      "content"     : "Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP.I. What is OOPLập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code - trừu tượng hóa các đối tượng trong cuộc sống vào trong code để tương tác - tính toán - xử lý.II. OOP in programmingGiả sử bạn đang muốn tạo ra một chiếc ô tô, vậy trước tiên bạn cần thiết kế ra một bản thiết kế của cái ô tô đó. Trong bản thiết kế đó sẽ phác thảo ra những thông tin, đặc điểm của chiếc ô tô cần có ví dụ như: tên, màu sắc, kích thước, trọng lượng… bên cạnh đó bạn cũng cần phải mô tả được những công dụng, thao tác, hành động mà chiếc ô tô đó có thể làm được.Và khi bạn đã có bản thiết kế thì bạn có thể tạo ra chiếc ô tô, chiếc ô tô này sẽ có các đặc điểm và hành động giống y bản thiết kế.Như trong cuộc sống, bạn chỉ cần có một bản thiết kế nhưng không vì vậy mà chỉ tạo được một chiếc ô tô - bạn có thể tạo ra được rất nhiều chiếc ô tô dựa trên một bản thiết kế và tất cả chiếc ô tô được tạo ra cùng một bản thiết kế thì đều có các đặc điểm và hành động giống nhau. Nhưng giá trị của những thông tin, đặc điểm sẽ có thể khác nhau hoặc trùng nhau ví dụ: có chiếc xe màu đỏ, có chiếc màu xanh, màu trắng…Mỗi chiếc ô tô tạo ra được xem là một thực thể (có thực, đã được tạo ra trong thực tế) thể hiện của bản thiết kế.1. ClassVậy class trong Java là gì? Nó được xem như là một bản thiết kế các đối tượng (object) trong lập trình.Một class là một kiểu dữ liệu (data type) bao gồm: thuộc tính (Property - Attribute): thể hiện qua biến (variable) phương thức (Method): thể hiện qua hàm (function)được định nghĩa từ trước.Khác với kiểu dữ liệu thông thường (nguyên thủy), một class là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các thuộc tính và các phương thức.2. Objectclass bạn có thể hiểu nó như là khuôn mẫu, bản thiết kế thì object là một thực thể thể hiện (instance) dựa trên khuôn mẫu đó. Hay như ở bối cảnh trên, object chính là những chiếc ô tô được tạo ra từ bản thiết kế. Trong lập trình, mặc định các object là khác nhau cho dù có cùng các giá trị thuộc tính và phương thức giống nhau.III. What are the main principles of OOPLập trình hướng đối tượng có 4 tính chất đặc thù sau: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tượng (Abstraction)Khái niệm cơ bản: Tính đóng gói nhằm bảo vệ đối tượng không bị truy cập từ code bên ngoài vào để thay để giá trị các thuộc tính hay có thể truy cập trực tiếp. Việc cho phép truy cập các giá trị của đối tượng tùy theo sự đồng ý của người viết ra lớp của đối tượng đó. Tính chất này đảm bảo sự bảo mật, toàn vẹn của đối tượng trong Java. Tính kế thừa cho phép chúng ta cải tiến chương trình bằng cách kế thừa lại lớp cũ và phát triển những tính năng mới. Lớp con sẽ kế thừa tất cả những thành phần của lớp cha, nhờ sự chia sẻ này mới có thể mở rộng những đặc tính sẵn có mà không cần phải định nghĩa lại. Tính đa hình có thể nói luôn tồn tại song song với tính kế thừa. Khi có nhiều lớp con kế thừa lớp cha nhưng có những tính chất khác nhau cũng gọi là đa hình, hoặc những tác vụ trong cùng một đối tượng được thể hiện nhiều cách khác nhau cũng gọi là đa hình. Tính đa hình là kết quả tất yếu khi ta phát triển khả năng kế thừa và nâng cấp chương trình. Tính trừu tượng là một tiến trình chỉ nói ra tính năng của người dùng, các khái niệm được định nghĩa trong quá trình phát triển, bỏ qua những chi tiết triển khai bên trong. Tính trừu tượng cho phép người lập trình tập trung cốt lõi cần thiết của đối tượng thay vì quan tâm sự phức tạo bên trong hoặc cách nó hoạt động. Trong các bài sau, chúng ta sẽ đi sâu và giải thích rõ hơn từng tính chất cụ thể ở trên và thực hiện code ví dụ minh họa - để có thể hiểu được những tính chất trên được thể hiện trong code như thế nào.IV. Advantages of object-oriented programming Dựa trên nguyên lý kế thừa, trong quá trình tạo - mô tả các class có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các class mà không cần thực hiện lại. Tối ưu và tái sử dụng code hiệu quả. Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện. Sự xuất hiện của 2 khái niệm mới là class và object chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.###© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "OOP in Java",
      "category"    : "oop",
      "tags"        : "java, oop, basic",
      "url"         : "./oop-in-java.html",
      "date"        : "2021-08-28 00:00:00 +0000",
      "description" : "ELI5: what is a neural network.",
      "content"     : "Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP.I. What is OOPLập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code - trừu tượng hóa các đối tượng trong cuộc sống vào trong code để tương tác - tính toán - xử lý.II. OOP in programmingGiả sử bạn đang muốn tạo ra một chiếc ô tô, vậy trước tiên bạn cần thiết kế ra một bản thiết kế của cái ô tô đó. Trong bản thiết kế đó sẽ phác thảo ra những thông tin, đặc điểm của chiếc ô tô cần có ví dụ như: tên, màu sắc, kích thước, trọng lượng… bên cạnh đó bạn cũng cần phải mô tả được những công dụng, thao tác, hành động mà chiếc ô tô đó có thể làm được.Và khi bạn đã có bản thiết kế thì bạn có thể tạo ra chiếc ô tô, chiếc ô tô này sẽ có các đặc điểm và hành động giống y bản thiết kế.Như trong cuộc sống, bạn chỉ cần có một bản thiết kế nhưng không vì vậy mà chỉ tạo được một chiếc ô tô - bạn có thể tạo ra được rất nhiều chiếc ô tô dựa trên một bản thiết kế và tất cả chiếc ô tô được tạo ra cùng một bản thiết kế thì đều có các đặc điểm và hành động giống nhau. Nhưng giá trị của những thông tin, đặc điểm sẽ có thể khác nhau hoặc trùng nhau ví dụ: có chiếc xe màu đỏ, có chiếc màu xanh, màu trắng…Mỗi chiếc ô tô tạo ra được xem là một thực thể (có thực, đã được tạo ra trong thực tế) thể hiện của bản thiết kế.1. ClassVậy class trong Java là gì? Nó được xem như là một bản thiết kế các đối tượng (object) trong lập trình.Một class là một kiểu dữ liệu (data type) bao gồm: thuộc tính (Property - Attribute): thể hiện qua biến (variable) phương thức (Method): thể hiện qua hàm (function)được định nghĩa từ trước.Khác với kiểu dữ liệu thông thường (nguyên thủy), một class là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các thuộc tính và các phương thức.2. Objectclass bạn có thể hiểu nó như là khuôn mẫu, bản thiết kế thì object là một thực thể thể hiện (instance) dựa trên khuôn mẫu đó. Hay như ở bối cảnh trên, object chính là những chiếc ô tô được tạo ra từ bản thiết kế. Trong lập trình, mặc định các object là khác nhau cho dù có cùng các giá trị thuộc tính và phương thức giống nhau.III. What are the main principles of OOPLập trình hướng đối tượng có 4 tính chất đặc thù sau: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tượng (Abstraction)Khái niệm cơ bản: Tính đóng gói nhằm bảo vệ đối tượng không bị truy cập từ code bên ngoài vào để thay để giá trị các thuộc tính hay có thể truy cập trực tiếp. Việc cho phép truy cập các giá trị của đối tượng tùy theo sự đồng ý của người viết ra lớp của đối tượng đó. Tính chất này đảm bảo sự bảo mật, toàn vẹn của đối tượng trong Java. Tính kế thừa cho phép chúng ta cải tiến chương trình bằng cách kế thừa lại lớp cũ và phát triển những tính năng mới. Lớp con sẽ kế thừa tất cả những thành phần của lớp cha, nhờ sự chia sẻ này mới có thể mở rộng những đặc tính sẵn có mà không cần phải định nghĩa lại. Tính đa hình có thể nói luôn tồn tại song song với tính kế thừa. Khi có nhiều lớp con kế thừa lớp cha nhưng có những tính chất khác nhau cũng gọi là đa hình, hoặc những tác vụ trong cùng một đối tượng được thể hiện nhiều cách khác nhau cũng gọi là đa hình. Tính đa hình là kết quả tất yếu khi ta phát triển khả năng kế thừa và nâng cấp chương trình. Tính trừu tượng là một tiến trình chỉ nói ra tính năng của người dùng, các khái niệm được định nghĩa trong quá trình phát triển, bỏ qua những chi tiết triển khai bên trong. Tính trừu tượng cho phép người lập trình tập trung cốt lõi cần thiết của đối tượng thay vì quan tâm sự phức tạo bên trong hoặc cách nó hoạt động. Trong các bài sau, chúng ta sẽ đi sâu và giải thích rõ hơn từng tính chất cụ thể ở trên và thực hiện code ví dụ minh họa - để có thể hiểu được những tính chất trên được thể hiện trong code như thế nào.IV. Advantages of object-oriented programming Dựa trên nguyên lý kế thừa, trong quá trình tạo - mô tả các class có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các class mà không cần thực hiện lại. Tối ưu và tái sử dụng code hiệu quả. Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện. Sự xuất hiện của 2 khái niệm mới là class và object chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.###© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "OOP in Java OOP in Java OOP in Java OOP in Java",
      "category"    : "oop",
      "tags"        : "java, oop",
      "url"         : "./oop-in-java.html",
      "date"        : "2021-08-27 00:00:00 +0000",
      "description" : "ELI5: what is a neural network.",
      "content"     : "Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP.I. What is OOPLập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code - trừu tượng hóa các đối tượng trong cuộc sống vào trong code để tương tác - tính toán - xử lý.II. OOP in programmingGiả sử bạn đang muốn tạo ra một chiếc ô tô, vậy trước tiên bạn cần thiết kế ra một bản thiết kế của cái ô tô đó. Trong bản thiết kế đó sẽ phác thảo ra những thông tin, đặc điểm của chiếc ô tô cần có ví dụ như: tên, màu sắc, kích thước, trọng lượng… bên cạnh đó bạn cũng cần phải mô tả được những công dụng, thao tác, hành động mà chiếc ô tô đó có thể làm được.Và khi bạn đã có bản thiết kế thì bạn có thể tạo ra chiếc ô tô, chiếc ô tô này sẽ có các đặc điểm và hành động giống y bản thiết kế.Như trong cuộc sống, bạn chỉ cần có một bản thiết kế nhưng không vì vậy mà chỉ tạo được một chiếc ô tô - bạn có thể tạo ra được rất nhiều chiếc ô tô dựa trên một bản thiết kế và tất cả chiếc ô tô được tạo ra cùng một bản thiết kế thì đều có các đặc điểm và hành động giống nhau. Nhưng giá trị của những thông tin, đặc điểm sẽ có thể khác nhau hoặc trùng nhau ví dụ: có chiếc xe màu đỏ, có chiếc màu xanh, màu trắng…Mỗi chiếc ô tô tạo ra được xem là một thực thể (có thực, đã được tạo ra trong thực tế) thể hiện của bản thiết kế.1. ClassVậy class trong Java là gì? Nó được xem như là một bản thiết kế các đối tượng (object) trong lập trình.Một class là một kiểu dữ liệu (data type) bao gồm: thuộc tính (Property - Attribute): thể hiện qua biến (variable) phương thức (Method): thể hiện qua hàm (function)được định nghĩa từ trước.Khác với kiểu dữ liệu thông thường (nguyên thủy), một class là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các thuộc tính và các phương thức.2. Objectclass bạn có thể hiểu nó như là khuôn mẫu, bản thiết kế thì object là một thực thể thể hiện (instance) dựa trên khuôn mẫu đó. Hay như ở bối cảnh trên, object chính là những chiếc ô tô được tạo ra từ bản thiết kế. Trong lập trình, mặc định các object là khác nhau cho dù có cùng các giá trị thuộc tính và phương thức giống nhau.III. What are the main principles of OOPLập trình hướng đối tượng có 4 tính chất đặc thù sau: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tượng (Abstraction)Khái niệm cơ bản: Tính đóng gói nhằm bảo vệ đối tượng không bị truy cập từ code bên ngoài vào để thay để giá trị các thuộc tính hay có thể truy cập trực tiếp. Việc cho phép truy cập các giá trị của đối tượng tùy theo sự đồng ý của người viết ra lớp của đối tượng đó. Tính chất này đảm bảo sự bảo mật, toàn vẹn của đối tượng trong Java. Tính kế thừa cho phép chúng ta cải tiến chương trình bằng cách kế thừa lại lớp cũ và phát triển những tính năng mới. Lớp con sẽ kế thừa tất cả những thành phần của lớp cha, nhờ sự chia sẻ này mới có thể mở rộng những đặc tính sẵn có mà không cần phải định nghĩa lại. Tính đa hình có thể nói luôn tồn tại song song với tính kế thừa. Khi có nhiều lớp con kế thừa lớp cha nhưng có những tính chất khác nhau cũng gọi là đa hình, hoặc những tác vụ trong cùng một đối tượng được thể hiện nhiều cách khác nhau cũng gọi là đa hình. Tính đa hình là kết quả tất yếu khi ta phát triển khả năng kế thừa và nâng cấp chương trình. Tính trừu tượng là một tiến trình chỉ nói ra tính năng của người dùng, các khái niệm được định nghĩa trong quá trình phát triển, bỏ qua những chi tiết triển khai bên trong. Tính trừu tượng cho phép người lập trình tập trung cốt lõi cần thiết của đối tượng thay vì quan tâm sự phức tạo bên trong hoặc cách nó hoạt động. Trong các bài sau, chúng ta sẽ đi sâu và giải thích rõ hơn từng tính chất cụ thể ở trên và thực hiện code ví dụ minh họa - để có thể hiểu được những tính chất trên được thể hiện trong code như thế nào.IV. Advantages of object-oriented programming Dựa trên nguyên lý kế thừa, trong quá trình tạo - mô tả các class có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các class mà không cần thực hiện lại. Tối ưu và tái sử dụng code hiệu quả. Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện. Sự xuất hiện của 2 khái niệm mới là class và object chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.###© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "OOP in Java",
      "category"    : "oop",
      "tags"        : "java, oop, basic",
      "url"         : "./oop-in-java.html",
      "date"        : "2021-08-26 00:00:00 +0000",
      "description" : "ELI5: what is a neural network.",
      "content"     : "Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP.I. What is OOPLập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code - trừu tượng hóa các đối tượng trong cuộc sống vào trong code để tương tác - tính toán - xử lý.II. OOP in programmingGiả sử bạn đang muốn tạo ra một chiếc ô tô, vậy trước tiên bạn cần thiết kế ra một bản thiết kế của cái ô tô đó. Trong bản thiết kế đó sẽ phác thảo ra những thông tin, đặc điểm của chiếc ô tô cần có ví dụ như: tên, màu sắc, kích thước, trọng lượng… bên cạnh đó bạn cũng cần phải mô tả được những công dụng, thao tác, hành động mà chiếc ô tô đó có thể làm được.Và khi bạn đã có bản thiết kế thì bạn có thể tạo ra chiếc ô tô, chiếc ô tô này sẽ có các đặc điểm và hành động giống y bản thiết kế.Như trong cuộc sống, bạn chỉ cần có một bản thiết kế nhưng không vì vậy mà chỉ tạo được một chiếc ô tô - bạn có thể tạo ra được rất nhiều chiếc ô tô dựa trên một bản thiết kế và tất cả chiếc ô tô được tạo ra cùng một bản thiết kế thì đều có các đặc điểm và hành động giống nhau. Nhưng giá trị của những thông tin, đặc điểm sẽ có thể khác nhau hoặc trùng nhau ví dụ: có chiếc xe màu đỏ, có chiếc màu xanh, màu trắng…Mỗi chiếc ô tô tạo ra được xem là một thực thể (có thực, đã được tạo ra trong thực tế) thể hiện của bản thiết kế.1. ClassVậy class trong Java là gì? Nó được xem như là một bản thiết kế các đối tượng (object) trong lập trình.Một class là một kiểu dữ liệu (data type) bao gồm: thuộc tính (Property - Attribute): thể hiện qua biến (variable) phương thức (Method): thể hiện qua hàm (function)được định nghĩa từ trước.Khác với kiểu dữ liệu thông thường (nguyên thủy), một class là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các thuộc tính và các phương thức.2. Objectclass bạn có thể hiểu nó như là khuôn mẫu, bản thiết kế thì object là một thực thể thể hiện (instance) dựa trên khuôn mẫu đó. Hay như ở bối cảnh trên, object chính là những chiếc ô tô được tạo ra từ bản thiết kế. Trong lập trình, mặc định các object là khác nhau cho dù có cùng các giá trị thuộc tính và phương thức giống nhau.III. What are the main principles of OOPLập trình hướng đối tượng có 4 tính chất đặc thù sau: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tượng (Abstraction)Khái niệm cơ bản: Tính đóng gói nhằm bảo vệ đối tượng không bị truy cập từ code bên ngoài vào để thay để giá trị các thuộc tính hay có thể truy cập trực tiếp. Việc cho phép truy cập các giá trị của đối tượng tùy theo sự đồng ý của người viết ra lớp của đối tượng đó. Tính chất này đảm bảo sự bảo mật, toàn vẹn của đối tượng trong Java. Tính kế thừa cho phép chúng ta cải tiến chương trình bằng cách kế thừa lại lớp cũ và phát triển những tính năng mới. Lớp con sẽ kế thừa tất cả những thành phần của lớp cha, nhờ sự chia sẻ này mới có thể mở rộng những đặc tính sẵn có mà không cần phải định nghĩa lại. Tính đa hình có thể nói luôn tồn tại song song với tính kế thừa. Khi có nhiều lớp con kế thừa lớp cha nhưng có những tính chất khác nhau cũng gọi là đa hình, hoặc những tác vụ trong cùng một đối tượng được thể hiện nhiều cách khác nhau cũng gọi là đa hình. Tính đa hình là kết quả tất yếu khi ta phát triển khả năng kế thừa và nâng cấp chương trình. Tính trừu tượng là một tiến trình chỉ nói ra tính năng của người dùng, các khái niệm được định nghĩa trong quá trình phát triển, bỏ qua những chi tiết triển khai bên trong. Tính trừu tượng cho phép người lập trình tập trung cốt lõi cần thiết của đối tượng thay vì quan tâm sự phức tạo bên trong hoặc cách nó hoạt động. Trong các bài sau, chúng ta sẽ đi sâu và giải thích rõ hơn từng tính chất cụ thể ở trên và thực hiện code ví dụ minh họa - để có thể hiểu được những tính chất trên được thể hiện trong code như thế nào.IV. Advantages of object-oriented programming Dựa trên nguyên lý kế thừa, trong quá trình tạo - mô tả các class có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các class mà không cần thực hiện lại. Tối ưu và tái sử dụng code hiệu quả. Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện. Sự xuất hiện của 2 khái niệm mới là class và object chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.###© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } ,
  
    {
      "title"       : "OOP in Java",
      "category"    : "oop",
      "tags"        : "java, oop",
      "url"         : "./oop-in-java.html",
      "date"        : "2021-08-25 00:00:00 +0000",
      "description" : "ELI5: what is a neural network.",
      "content"     : "Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP.I. What is OOPLập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code - trừu tượng hóa các đối tượng trong cuộc sống vào trong code để tương tác - tính toán - xử lý.II. OOP in programmingGiả sử bạn đang muốn tạo ra một chiếc ô tô, vậy trước tiên bạn cần thiết kế ra một bản thiết kế của cái ô tô đó. Trong bản thiết kế đó sẽ phác thảo ra những thông tin, đặc điểm của chiếc ô tô cần có ví dụ như: tên, màu sắc, kích thước, trọng lượng… bên cạnh đó bạn cũng cần phải mô tả được những công dụng, thao tác, hành động mà chiếc ô tô đó có thể làm được.Và khi bạn đã có bản thiết kế thì bạn có thể tạo ra chiếc ô tô, chiếc ô tô này sẽ có các đặc điểm và hành động giống y bản thiết kế.Như trong cuộc sống, bạn chỉ cần có một bản thiết kế nhưng không vì vậy mà chỉ tạo được một chiếc ô tô - bạn có thể tạo ra được rất nhiều chiếc ô tô dựa trên một bản thiết kế và tất cả chiếc ô tô được tạo ra cùng một bản thiết kế thì đều có các đặc điểm và hành động giống nhau. Nhưng giá trị của những thông tin, đặc điểm sẽ có thể khác nhau hoặc trùng nhau ví dụ: có chiếc xe màu đỏ, có chiếc màu xanh, màu trắng…Mỗi chiếc ô tô tạo ra được xem là một thực thể (có thực, đã được tạo ra trong thực tế) thể hiện của bản thiết kế.1. ClassVậy class trong Java là gì? Nó được xem như là một bản thiết kế các đối tượng (object) trong lập trình.Một class là một kiểu dữ liệu (data type) bao gồm: thuộc tính (Property - Attribute): thể hiện qua biến (variable) phương thức (Method): thể hiện qua hàm (function)được định nghĩa từ trước.Khác với kiểu dữ liệu thông thường (nguyên thủy), một class là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các thuộc tính và các phương thức.2. Objectclass bạn có thể hiểu nó như là khuôn mẫu, bản thiết kế thì object là một thực thể thể hiện (instance) dựa trên khuôn mẫu đó. Hay như ở bối cảnh trên, object chính là những chiếc ô tô được tạo ra từ bản thiết kế. Trong lập trình, mặc định các object là khác nhau cho dù có cùng các giá trị thuộc tính và phương thức giống nhau.III. What are the main principles of OOPLập trình hướng đối tượng có 4 tính chất đặc thù sau: Tính đóng gói (Encapsulation) Tính kế thừa (Inheritance) Tính đa hình (Polymorphism) Tính trừu tượng (Abstraction)Khái niệm cơ bản: Tính đóng gói nhằm bảo vệ đối tượng không bị truy cập từ code bên ngoài vào để thay để giá trị các thuộc tính hay có thể truy cập trực tiếp. Việc cho phép truy cập các giá trị của đối tượng tùy theo sự đồng ý của người viết ra lớp của đối tượng đó. Tính chất này đảm bảo sự bảo mật, toàn vẹn của đối tượng trong Java. Tính kế thừa cho phép chúng ta cải tiến chương trình bằng cách kế thừa lại lớp cũ và phát triển những tính năng mới. Lớp con sẽ kế thừa tất cả những thành phần của lớp cha, nhờ sự chia sẻ này mới có thể mở rộng những đặc tính sẵn có mà không cần phải định nghĩa lại. Tính đa hình có thể nói luôn tồn tại song song với tính kế thừa. Khi có nhiều lớp con kế thừa lớp cha nhưng có những tính chất khác nhau cũng gọi là đa hình, hoặc những tác vụ trong cùng một đối tượng được thể hiện nhiều cách khác nhau cũng gọi là đa hình. Tính đa hình là kết quả tất yếu khi ta phát triển khả năng kế thừa và nâng cấp chương trình. Tính trừu tượng là một tiến trình chỉ nói ra tính năng của người dùng, các khái niệm được định nghĩa trong quá trình phát triển, bỏ qua những chi tiết triển khai bên trong. Tính trừu tượng cho phép người lập trình tập trung cốt lõi cần thiết của đối tượng thay vì quan tâm sự phức tạo bên trong hoặc cách nó hoạt động. Trong các bài sau, chúng ta sẽ đi sâu và giải thích rõ hơn từng tính chất cụ thể ở trên và thực hiện code ví dụ minh họa - để có thể hiểu được những tính chất trên được thể hiện trong code như thế nào.IV. Advantages of object-oriented programming Dựa trên nguyên lý kế thừa, trong quá trình tạo - mô tả các class có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các class mà không cần thực hiện lại. Tối ưu và tái sử dụng code hiệu quả. Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện. Sự xuất hiện của 2 khái niệm mới là class và object chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.© Copyright ANEST LEARNINGJoin us:     Facebook groupsWebsite:   https://anest.dev"
    } 
  
]
