Hotline: 0919 365 363; Email: daotao@r2s.edu.vn

Lập trình hướng đối tượng Java

Lập trình hướng đối tượng Java

Kiến thức hữu ích

Lập trình hướng đối tượng Java

Lập trình hướng đối tượng với Java là gì? Cùng tìm hiểu tính chất của lập trình hướng đối tượng cũng như cách sử dụng các lớp đã có sẵn hoặc bằng cách tạo ra các lớp mới sẽ được giới thiệu trong bài viết dưới đây của  R2S nhé!

Lập trình hướng đối tượng Java là gì?

Lập trình hướng đối tượng với Java
Lập trình hướng đối tượng là gì?

Lập trình hướng đối tượng là một phương pháp lập trình tập trung vào việc mô hình hóa thế giới thực và phát triển các đối tượng phi tập trung. 

Trong lập trình Java, các đối tượng được xây dựng bằng cách sử dụng các lớp, và các đối tượng mới. 

Cụ thể tính chất của lập trình hướng đối tượng cũng như cách sử dụng các lớp đã có sẵn hoặc bằng cách tạo ra các lớp mới sẽ được giới thiệu trong bài viết dưới đây của  R2S nhé!

Ví dụ về Lập trình hướng đối tượng

Cho thông tin về danh sách khách hàng (Customer) như hình

Lập trình hướng đối tượng Java
Ví dụ – Lập trình hướng đối tượng trong Java 

Với mỗi khách hàng (Customer), các yêu cầu về dữ liệu cần được quản lý gồm Customer ID, Name, Address và Age.

Ví dụ - Lập trình hướng đối tượng trong Java 
Ví dụ – Lập trình hướng đối tượng

Lập trình hướng đối tượng trong Java – Thảo luận về cách để tạo ra các khách hàng

public class Customer { 
int customerID;
  String customerName;
  String customerAddress;
int customerAge;
 public static void main(String[] args) {
  Customer c = new Customer();
  c.customerID = 100;
  c.customerName = "Jack";
  c.customerAddress = "123 Street";
  c.customerAge = 30;
 System.out.println("Ma: " + c.customerID);
  System.out.println("Ten: " + c.customerName);
  System.out.println("Dia chi: " + c.customerAddress);
  System.out.println("Tuoi: " + c.customerAge);
 }
}

Giải thích cụ thể

1. Khai báo thuộc tính của đối tượng khách hàng

int customerID; 
String customerName; 
String customerAddress; 
int customerAge;

2. Tạo một đối tượng khách hàng

Customer c = new Customer();

3. Truy cập đến các thuộc tính để lưu trữ thông tin của đối tượng

c.customerID = 100;
c.customerName = "John";
c.customerAddress = "123 Street";
c.customerAge = 30;

4. Hiển thị thông tin chi tiết đối tượng khách hàng

System.out.println("Ma: " + c.customerID);
System.out.println("Ten: " + c.customerName);
System.out.println("Dia chi: " + c.customerAddress);
System.out.println("Tuoi: " + c.customerAge);

Lập trình hướng đối tượng Java – Thảo luận về các hành vi của đối tượng

Giải thích

  • Hành vi changeCustomerAddress() được sử dụng để thay đổi địa chỉ của khách hàng
void changeCustomerAddress(String address) {
 customerAddress = address;
}
  • Hành vi displayCustomerInformation() được sử dụng để thiển thị thông tin khách hàng
void displayCustomerInformation() {
 System.out.println("Ma: " + customerID);
 System.out.println("Ten: " + customerName);
 System.out.println("Dia chi: " + customerAddress);
 System.out.println("Tuoi: " + customerAge);
}

Lập trình hướng đối tượng Java Một số điều cần biết

Lớp (class) là khuôn mẫu để tạo ra đối tượng. Các thành viên của lớp bao gồm thuộc tính (dữ liệu) và phương thức (hành vi)

Lập trình hướng đối tượng trong Java - Một số điều cần biết
Lập trình hướng đối tượng – Một số điều cần biết

Khai báo class

public <class_name> {
 // class body
}

  Khai báo thuộc tính

[access_modifier] data_type propertyName;

access_modifier gọi là phạm vi truy cập và nó có thể là private, protected và public

Thuộc tínhGiải thích
privateChỉ được phép truy cập tại lớp khai báo
protectedĐược phép truy cập tại lớp khai báo, lớp con cùng gói hoặc khác gói và những lớp cùng gói (package)
publicĐược truy cập ở tất cả các lớp, ở tất cả các gói trong cùng project
defaultĐược truy cập ở những lớp con cùng gói hoặc những lớp khác cùng gói

Khai báo phương thức

[access_modifier] <return type> <method_name> ([list of parameters]) {
   // Body of the method
}

Trong đó:

  • access_modifier tương tự khai báo thuộc tính
  • returntype chỉ định kiểu dữ liệu trả về như int, long, float, double, String, boolean, object
  • method_name là tên phương thức
  • list of parameters là các giá trị được truyền cho phương thức

Tính kế thừa trong lập trình hướng đối tượng Java

Đặt vấn đề

  • Xây dựng lớp để tạo đối tượng nhân viên với các thông tin bao gồm: tên, địa chỉ, email, số điện thoại, bằng cấp. Phương thức nhập và hiển thị thông tin nhân viên.
  • Xây dựng lớp để tạo đối tượng khách hàng với các thông tin bao gồm tên, địa chỉ, email, số điện thoại và loại khách hàng. Phương thức nhập và hiển thị thông tin khách hàng.

Phân tích

  • Cả hai lớp đều chứa thông tin chung gồm tên, địa chỉ, email và số điện thoại. 
  • Ngoài ra, cả hai lớp cũng đều có các phương thức để nhập và hiển thị thông tin này.
Tính kế thừa trong lập trình hướng đối tượng Java
Tính kế thừa trong lập trình hướng đối tượng

Kết luận

  • Những phần chung sẽ được khai báo ở lớp cha, tức là lớp chung.
  • Lớp nhân viên và lớp khách hàng sẽ kế thừa những phần chung ở lớp cha.

Lưu ý:

Cú pháp lập trình hướng đối tượng Java

  • Xây dựng lớp dùng chung (lớp cha)
public class BaseClass {
  //Khai báo thuộc tính chung
  //Xây dựng phương thức chung

}

Xây dựng lớp mới kế thừa lớp cha

public class ClassName extends BaseClass {

  //Khai báo những thuộc tính riêng

  //Xây dựng phương thức riêng

}

Tính đóng gói trong lập trình hướng đối tượng java 

  • Những thuộc tính được khai báo ở đây, sẽ có phạm vi truy cập là private, tức là không thể truy cập vào chúng ở lớp khác.
  • Nếu muốn giá trị của thuộc tính chỉ được đọc mà không được ghi, thì cần xây dựng phương thức getter.
  • Nếu muốn giá trị của thuộc tính chỉ được ghi mà không được đọc, thì cần xây dựng phương thức setter.
public class Rectangle {

  private int length;
  private int width;

  //Đọc
  public int getLength() {
    return length;
  }

  //Ghi
  public void setWidth(int w) {
    width = w;
  }
}

Lập trình hướng đối tượng tính đa hình

Trong thực tế, cùng một người có thể đảm nhận nhiều vai trò khác nhau như làm cha, làm con, làm chồng, vv. Điều này có nghĩa, họ sẽ có những hành vi khác nhau trong các tình huống khác nhau.

Tương tự, trong Java, ta có tính năng đa hình, trong đó các đối tượng có thể có các hành vi khác nhau dựa trên ngữ cảnh sử dụng của chúng.

Ví dụ, khi xây dựng lớp khách hàng (Customer), ta có thể tạo 2 phương thức khởi tạo (constructor) với các tham số khác nhau (khác nhau về số lượng, kiểu dữ liệu, thứ tự xuất hiện), và khi sử dụng chúng ta có thể quyết định phương thức nào được sử dụng dựa trên ngữ cảnh cụ thể.

Ví dụ lập trình hướng đối tượng Java trong 1 lớp:

public class Customer {
  //Thuộc tính
  int customerID;
  String customerName;
  String customerAddress;
  int customerAge;

  //Phương thức khởi tạo không có tham số
  public Customer(){
     customerID = 0;
     customerName = "";
     customerAddress = "";
     customerAge = 0;
  }

  //Phương thức khởi tạo có tham số (Constructor)
  public Customer(int id, String name, String address, age){
    customerID = id;
    customerName = name;
    customerAddress = address;
    customerAge = age;
  }
}

Ví dụ trong nhiều lớp – Lập trình hướng đối tượng trong

Đa hình thể hiện ở kỹ thuật override method.

public class Vehicle {
  public void accelerate(int speed) {
    System.out.println("Accelerating at: " + speed + "km");
  }
}

public class FourWheeler extends Vehicle {

  @Override
  public void accelerate(int speed) {
    //Calling method of super class
    super.accelerate(speed);
    System.out.println("Maximum Accelerating at: " + speed + "km");
 }
}

Kết luận

R2S mong là thông tin về lập trình hướng đối tượng với Java đã giúp bạn hiểu hơn về những tính chất của ngôn ngữ này. Còn rất nhiều những bài học khác hay ho và hữu ích hơn về java đang đợi bạn khám phá, đừng bỏ lỡ nhé!

Bài viết gốc được đăng tại: https://giasutinhoc.vn/

Alert: You are not allowed to copy content or view source !!