0
0
Posts
NV
Nguyễn Viết Ngọcnguyenvietngoc199717

4 Tính Chất Của Lập Trình Hướng Đối Tượng Trong Java

Đăng vào 2 months ago

• 5 phút đọc

Chủ đề:

Java

Lập trình hướng đối tượng (OOP) là một mô hình lập trình phổ biến, đặc biệt là trong ngôn ngữ lập trình Java. OOP tập trung vào việc sử dụng các "đối tượng" để mô hình hóa và giải quyết các vấn đề trong lập trình. Java, với cấu trúc và cú pháp của mình, hỗ trợ mạnh mẽ cho OOP thông qua bốn tính chất cơ bản: Tính đóng gói, Tính kế thừa, Tính đa hình, và Tính trừu tượng

Tính Đóng Gói (Encapsulation)

Định Nghĩa

Tính đóng gói là một cơ chế của OOP giúp hạn chế quyền truy cập trực tiếp vào dữ liệu của đối tượng từ bên ngoài. Điều này được thực hiện thông qua việc sử dụng các phương thức getter và setter để truy cập và cập nhật giá trị của các biến private trong class

Ví Dụ

public class Employee {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age > 0) {
            this.age = age;
        }
    }
}

Trong ví dụ trên, các thuộc tính nameage của class Employee được đánh dấu là private, điều này ngăn không cho truy cập trực tiếp từ bên ngoài class. Thay vào đó, các phương thức getter và setter được sử dụng để truy cập và cập nhật giá trị của chúng một cách an toàn.

Tính Kế Thừa (Inheritance)

Định Nghĩa

Tính kế thừa cho phép một class kế thừa các thuộc tính và phương thức của một class khác. Class kế thừa được gọi là class con, và class được kế thừa là class cha

Ví Dụ

public class Person {
    protected String name;
    protected int age;

    public void display() {
        System.out.println("Name: " + name + ", Age: " + age);
    }
}

public class Student extends Person {
    private String school;

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    @Override
    public void display() {
        super.display();
        System.out.println("School: " + school);
    }
}

Trong ví dụ này, class Student kế thừa class Person. Nó có thể sử dụng các thuộc tính và phương thức của class Person như là chính nó. Phương thức display() cũng được ghi đè để thêm thông tin về trường học.

Tính Đa Hình (Polymorphism)

Định Nghĩa

Tính đa hình cho phép các đối tượng được xử lý dựa trên hình thái của chúng mà không cần biết chính xác lớp hoặc đối tượng cụ thể nào đang được thao tác[1].

Ví Dụ

public class Animal {
    public void sound() {
        System.out.println("Some sound");
    }
}

public class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Bark");
    }
}

public class Cat extends Animal {
    @Override
    public void sound() {
        System.out.println("Meow");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog();
        Animal myCat = new Cat();
        myDog.sound();  // Outputs: Bark
        myCat.sound();  // Outputs: Meow
    }
}

Trong ví dụ trên, phương thức sound() được ghi đè trong cả hai class DogCat. Khi phương thức này được gọi thông qua đối tượng của class Animal, Java sẽ xác định tại runtime đối tượng nào đang được tham chiếu và sử dụng phiên bản phương thức tương ứng.

Tính Trừu Tượng (Abstraction)

Định Nghĩa

Tính trừu tượng cho phép lập trình viên tập trung vào những gì một đối tượng làm thay vì cách thức thực hiện của nó, thường được thực hiện thông qua việc sử dụng các class trừu tượng và interfaces[1].

Ví Dụ

public abstract class Shape {
    public abstract void draw();
}

public class Circle extends Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

public class Square extends Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a square");
    }
}

public class Main {
    public static void main(String[] args) {
        Shape myCircle = new Circle();
        Shape mySquare = new Square();
        myCircle.draw();  // Outputs: Drawing a circle
        mySquare.draw();  // Outputs: Drawing a square
    }
}

Trong ví dụ này, Shape là một class trừu tượng với phương thức trừu tượng draw(). Các class con như CircleSquare cần phải cung cấp các triển khai cụ thể cho phương thức này. Điều này giúp đảm bảo rằng mọi hình dạng đều có phương thức draw() mà không cần quan tâm đến chi tiết cụ thể của từng hình.

Kết Luận

Bốn tính chất của lập trình hướng đối tượng trong Java cung cấp một khung sườn mạnh mẽ cho việc phát triển phần mềm, cho phép các lập trình viên xây dựng các ứng dụng hiệu quả, dễ bảo trì và mở rộng. Hiểu biết sâu sắc về các tính chất này và cách chúng tương tác với nhau là rất quan trọng đối với bất kỳ ai muốn trở thành một lập trình viên Java chuyên nghiệp.

Gợi ý câu hỏi phỏng vấn
entry

Lập Trình Hướng Đối Tượng (OOP) là gì?

entry

Bạn có thể nói sự khác biệt giữa cấu trúc dữ liệu tuyến tính và phi tuyến tính?

entry

Danh sách liên kết là tuyến tính hay phi tuyến tính?

entry

Có thể đổi tên cơ sở dữ liệu không? Nếu có, bạn sẽ đổi tên cơ sở dữ liệu như thế nào?

Bài viết cùng tác giả

Không có kết quả

Không có kết quả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào