Bài viết được sự cho phép của tác giả Giang Phan
Lập trình hướng đối tượng (Object Oriented Programing – OOP) là một phương pháp để thiết kế một chương trình bởi sử dụng các lớp và các đối tượng.
Java là một ngôn ngữ lập trình hướng đối tượng vì vậy nó cũng hỗ trợ các đặc tính của lập trình hướng đối tượng:
Đối tượng là một thực thể có trạng thái và hành vi. Nó có thể mang tính vật lý hoặc logic.
Nếu chúng ta xem xét thực tế chúng ta có thể tìm thấy nhiều đồ vật xung quanh chúng ta: cái bàn, con chó, con người, v.v… Tất cả các đối tượng này đều có thuộc tính và hành vi.
Nếu chúng ta xem xét một con chó, thuộc tính của nó sẽ là – tên, giống, màu sắc, và các hành vi là: sủa, chạy, ăn, … Nếu bạn so sánh các đối tượng trong phần mềm với một đối tượng trong thế giới thực, chúng sẽ có đặc điểm rất giống nhau: thuộc tính đối tượng trong phần mềm được lưu trữ trong trường (field) và hành vi được lưu trữ trong phương thức (method).
Chúng ta có thể xem lớp như một khuôn mẫu (template) của đối tượng (Object). Trong đó bao gồm dữ liệu của đối tượng (fields hay properties) và các phương thức(methods) tác động lên thành phần dữ liệu đó gọi là các phương thức của lớp.
Cú pháp:
Trong đó:
Ví dụ:
Lưu ý:
Cú pháp:
Sử dụng từ khóa new để khởi tạo một đối tượng của một lớp.
Một package (gói) trong java là một nhóm các kiểu tương tự của các lớp, giao diện và các package con .
Package trong java có thể được phân loại theo hai hình thức, package được dựng sẵn và package do người dùng định nghĩa.
Có rất nhiều package được dựng sẵn như java, lang, net, io, util, sql, …
Cú pháp:
Ví dụ về java package:
Lợi thế của việc sử dụng package trong java:
Có 3 cách để truy cập package từ package bên ngoài:
Ví dụ: một project có package như sau
Class CommonService cung cấp 2 phương thức method1 và method2.
Chúng ta có thể sử dụng method1 từ một class khác ngoài package com.gpcoder.service như sau:
Lưu ý
Constructor trong java là một dạng đặc biệt của phương thức được sử dụng để khởi tạo các đối tượng.
Java Constructor được gọi tại thời điểm tạo đối tượng. Nó khởi tạo các giá trị để cung cấp dữ liệu cho các đối tượng, đó là lý do tại sao nó được gọi là constructor.
Khai báo của Constructor giống với khải báo của method (phương thức). Nó phải có cùng tên với class (lớp) và không có giá trị trả về.
Có 2 kiểu của constructor:
Một constructor mà không có tham số được gọi là constructor mặc định. Constructor mặc định được sử dụng để cung cấp các giá trị mặc định cho các thuộc tính như 0, null, false … , tùy thuộc vào kiểu dữ liệu được sử dụng.
Nếu một lớp không khai báo contructor thì trình biên dịch sẽ tự động tạo một constructor mặc định trong lớp đó.
Cú pháp:
Ví dụ:
Kết quả khi chạy chương trình trên:
This is
default
constructor.
Một constructor có tham số truyền vào được gọi là constructor tham số. Constructor tham số được sử dụng để cung cấp các giá trị khác nhau cho các đối tượng khác nhau.
Ví dụ:
Kết quả:
|
Constructor Overloading là một kỹ thuật trong Java. Bạn có thể tạo nhiều constructor trong cùng một lớp với danh sách tham số truyền vào khác nhau, điều này được gọi là phép đa năng hóa (Overloading). Trình biên dịch phân biệt các constructor này thông qua số lượng và kiểu của các tham số truyền vào.
Ví dụ:
Kết quả:
This is
default
constructor.
---
This is parameterized constructor
from website = gpcoder.com
---
This is parameterized constructor
from website = gpcoder.com
with subject = OOP
Lưu ý
Có hai loại modifier trong java: access modifiers và non-access modifiers.
Các access modifiers trong java xác định độ truy cập (Phạm vi) vào dữ liệu của của các trường (field), phương thức (method), cấu tử (constructor) hoặc lớp (class).
Có 4 kiểu của java access modifiers:
Và có một vài non-access modifiers chẳng hạn static, abstract, synchronized, native, volatile, transient, v.v.. Trong tài liệu này chúng ta sẽ học về access modifier.
Bảng mô tả tổng quan về cách sử dụng các access modifier:
Devmaster Academy via gpcoder