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 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
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.
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)
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ính | Giải thích |
private | Chỉ đượ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.
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 và 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/