Fastest way to learn basic of OOP [P3]

Chào cả nhà, trưa không ngủ được nên ngồi viết bài luôn ^^.
Qua 2 phần của Fastest way to learn basic of Programming thì các newbie chắc hẳn cũng đã hiểu đc phần nào các định nghĩa lằng nhằng của Lập Trình. Và bây giờ, bài viết này sẽ giúp các bạn lướt nhanh qua hơn 30 trang về định nghĩa Lập Trình Hướng đối tượng. Bắt đầu

Phần 2 bạn xem lại tại Fastest way to learn basic of Programming [P2]

BƯỚC SÂU HƠN VÀO LẬP TRÌNH

Bước vào OOP

Lập trình hướng đối tượng: là kiểu lập trình quy về đối tượng ,nó xem mọi thứ là đối tượng. Hiểu đơn giản thế này... mọi thứ đều là obj (đối tượng), từ cái biến, cái thủ tục, cái lớp gì gì ấy đều là đối tượng. Cái gì hữu hình, vật thể cụ thể đều là obj. và bất kì đối tượng nào đều phải ở trong một lớp VD: Công an hỏi chuyện vs 1 thằng phạm nhân, thì ông công an là obj, thằng phạm nhân là obj, tờ giấy, cây viết là obj, hung khí gây án là obj, cái căn phòng là cái class (lớp) chứa mấy cái obj ấy, nhưng bản thân cái phòng lại là obj đấy. Vậy rồi đối tượng là gì? Đối tượng (Object- viết tắt là Obj) là một thứ hữu hình, vật thể cụ thể hay không cụ thể đều là Obj, xem vd trên nhé ^^ ``` Fact: Xu hướng hiện nay là Đối tượng hóa các ngôn ngữ lập trình, trong đó ưu tú nhất là Java ``` Lớp (Class): Là bản thiết kế của một thực thể (hack não nhỉ?) hiểu đơn giản hơn là nó giống như một thực thể, nó đơn giản chỉ là nơi chứa mấy cái Phương Thức vs Thuộc tính thôi mà VD nhé: Ở ngoài tiệm sách bạn thấy một biển quảng cáo cuốn sách bìa vàng, dày 690 trang (thì cuốn sách ấy là Lớp, nó chứa các thuộc tính và phương thức bên trong nó) nhưng khi bạn mua về thì nó nằm trong tay bạn (bây giờ cuốn sách của bạn là Obj của cuốn sách ấy, vì nó cụ thể hóa cuốn sách, không còn chỉ là quảng cáo hư cấu nữa). :joy: ``` Class Sach { // đây là cuốn sách trong quảng cáo (nó chưa có thực) int sotrang = 690; color maubia = yellow; string tuade = "Fastest way to ..."; } Class TuSachNhaMinh { //tủ sách này không có thật public static void main (String[] args) { // làm cho tủ sách có thật Sach sachcuaminh = new Sach(); //đây là cuốn sách đã mua -> nó có thật (tạo đối tượng) } } ``` Thuộc Tính (Properties): Đơn giản là cái biến nằm trong lớp thôi. Phương Thức (Methods): Đây là... cái hàm nằm trong lớp. (Định mệnh, làm mất mấy ngày đọc hiểu của bố :rage:). ``` Fact: Các thuộc tính và phương thức của lớp chỉ có thể sử dụng khi lớp đã trở thành đối tượng. ```

Khởi tạo: đây là cái phương thức có tên giống tên lớp mà khi tạo đối tượng từ một lớp thì nó sẽ thực hiện
VD: Sách có khởi tạo là giảm giá 69%, thì khi mua sẽ được giảm giá 69% đúng như khởi tạo.

class Sach {
 int sogia = 69000;
 Sach () {  //đây là khởi tạo, tên phải giống tên lớp
  sogia -= sogia*(69/100);
 }
}
class TuSach {
 public static void main(String[]args) {
  Sach sachcuatoi = new Sach(); //tạo đối tượng -> tự chạy khởi tạo
  System.out.println(sachcuatoi.sogia); //gia se khong con la 69000 nua
 }
}

Các Phạm vi Truy Cập: Access-Modifiers (các phạm vi truy cập) chia làm 3 loại
Public: truy cập bởi mọi thứ, mọi nơi
Protected: protected sẽ là public đối với class con và private đối với các class còn lại
Private : chỉ được truy cập bởi các thành viên bên trong chính lớp đó
Chi tiết hơn tại hình bên dưới :smiley:

Fact: Nếu không đặt Access-Modifier trước mỗi thành viên thì mặc định sẽ là public đối với các class cùng package và private đối với các class k cùng package

Package: gói - là nơi chứa những lớp liên quan. Khi muốn gọi một gói nào đó thì cần import nó
mặc định Java sẽ import gói java.lang.*; -> * - biểu thị gọi toàn bộ lớp trong gói ấy. Chính xác gói là cái folder chứa lớp ^^ và các thứ khác.

Fact: Các gói thường đặt tên bằng chữ thường, các từ cách nhau bằng " . "

Hôm nay bấy nhiêu thôi, vì OOP ban đầu khá khó nhưng hiểu đc rồi thì thấy nó rất dễ dàng. Chúc các bạn thành công ^^

Hãy bấm like hoặc reply để ủng hộ tác giả

19 Likes

cái này không đúng trong java đâu nhé, protected sẽ là public đối với class con và private đối với các class còn lại

cái này không đúng trong java đâu nhé, nếu k đặt access modifier thì mặc định sẽ là public đối với các class cùng package và private đối với các class k cùng package

4 Likes

Đồng ý với bạn :smile:
Phần này cần sửa lại chút rồi @conan4582
Mà bước vào OoP thì chắc nên sửa chỗ Nhập môn lập trình nhỉ :smile:

1 Like

cảm ơn bạn mình fix lại ngay ^^

Access modifier như hình dưới(java)

3 Likes

Mong là có phần mới bởi vì mình chưa hiểu về tính Đa hình :grinning:

1 Like

Biến nằm trong Class gọi là field không phải property

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?