Video: Java - 36: Lớp và đối tượng 2025
Lập trình hướng đối tượng là một loại chương trình máy tính - chẳng hạn như Java - dựa trên tiền đề rằng tất cả các chương trình là dựa trên cơ sở máy tính mô phỏng các đối tượng thực tế hoặc các khái niệm trừu tượng. Ví dụ:
-
Các chương trình giả lập chuyến bay cố bắt chước hành vi của các máy bay thực sự.
-
Nhiều trò chơi máy tính là mô phỏng các trò chơi thực tế mà con người chơi, chẳng hạn như bóng chày, đua NASCAR và cờ vua.
-
Ngay cả các chương trình kinh doanh có thể được coi là mô phỏng các quy trình kinh doanh, như đặt hàng, dịch vụ khách hàng, vận chuyển và thanh toán.
Đối tượng là các thực thể lập trình có các đặc điểm cơ bản nhất định:
-
Identity: Mỗi đối tượng trong một chương trình hướng đối tượng có identity . Nói cách khác, mỗi lần xuất hiện của một loại đối tượng cụ thể - ví dụ - có thể phân biệt được với mọi lần xảy ra cùng loại đối tượng cũng như đối tượng của các loại khác.
Mỗi cá thể đối tượng có vị trí riêng trong bộ nhớ của máy tính. Do đó, hai đối tượng, mặc dù chúng có thể cùng loại, có vị trí bộ nhớ riêng biệt của chúng. Địa chỉ của vị trí bắt đầu cho một đối tượng cung cấp cách phân biệt một đối tượng với đối tượng khác vì không có hai đối tượng có thể chiếm cùng một vị trí trong bộ nhớ.
Java giữ bản sắc của mỗi đối tượng khá nhiều cho chính nó. Nói cách khác, không có cách nào dễ dàng để lấy địa chỉ bộ nhớ của một đối tượng; Java mô tả rằng đó không phải là công việc của bạn, và đúng là như vậy. Nếu Java cung cấp thông tin đó cho bạn, bạn sẽ bị cám dỗ bởi nó, điều này có thể gây ra nhiều vấn đề, như bất kỳ lập trình viên C hay C ++ nào cũng có thể cho bạn biết.
gần như đại diện cho nhận dạng của đối tượng. Trong hầu hết các trường hợp, mã băm cho một đối tượng dựa trên địa chỉ bộ nhớ của đối tượng, nhưng không phải luôn luôn. Java không đảm bảo rằng hai đối tượng khác biệt sẽ không có cùng một mã băm. Khi được sử dụng với các đối tượng, toán tử bình đẳng (==) thực sự kiểm tra nhận dạng đối tượng của hai biến hoặc các biểu thức. Nếu họ tham chiếu đến cùng một đối tượng, hai biến hoặc các biểu thức được coi là bằng nhau. Kiểu: Lập trình hướng đối tượng cho phép bạn chỉ định tên cho các loại đối tượng khác nhau trong một chương trình. Trong Java, các lớp học xác định các loại. Vì vậy, khi bạn tạo ra một đối tượng từ một loại, bạn đang nói rằng đối tượng là loại được chỉ định bởi lớp.Câu lệnh ví dụ sau tạo một đối tượng kiểu Hoá đơn:Hoá đơn i = new Invoice ();
-
Trong trường hợp này, nhận dạng của đối tượng này (tức là địa chỉ của nó trong bộ nhớ) được gán cho biến i, trình biên dịch biết được có thể giữ các tham chiếu đến các đối tượng của Invoice loại. State:
Mặc dù mỗi instance của một kiểu đối tượng đã cho có các thuộc tính giống nhau, mỗi instance đều có một trạng thái khác nhau: đó là một sự kết hợp các giá trị khác nhau cho mỗi thuộc tính của nó.
Mặc dù một số thuộc tính của một đối tượng là công khai, nhưng các thuộc tính khác có thể là riêng tư. Các thuộc tính riêng có thể là quan trọng đối với hoạt động nội bộ của đối tượng, nhưng không ai bên ngoài đối tượng biết rằng chúng tồn tại. Họ giống như tư tưởng riêng tư của bạn: Họ ảnh hưởng đến những gì bạn nói và làm, nhưng không ai biết họ nhưng bạn.
-
Hành vi: Một đặc điểm khác của đồ vật là chúng có hành vi
-
nghĩa là chúng có thể làm mọi thứ. Giống như trạng thái, hành vi cụ thể của một vật thể phụ thuộc vào kiểu của nó. Không giống như trạng thái, tuy nhiên, hành vi không phải là khác nhau cho từng thể loại của một loại. Giả sử tất cả học sinh trong lớp học đều có máy tính cùng loại. Yêu cầu tất cả để kéo máy tính và thêm hai số. Tất cả các máy tính hiển thị một số khác nhau, nhưng tất cả chúng đều thêm theo cùng một cách; có nghĩa là, tất cả chúng đều có trạng thái khác nhau nhưng cũng có cùng hành vi. Một cách khác để nói rằng các đối tượng có hành vi là để nói rằng họ cung cấp các dịch vụ có thể được sử dụng bởi các đối tượng khác. Bạn đã có thể đã nhìn thấy rất nhiều ví dụ về các đối tượng cung cấp dịch vụ cho các đối tượng khác. Ví dụ, các đối tượng được tạo ra từ lớp NumberFormat cung cấp các dịch vụ định dạng biến các giá trị số thành các chuỗi được định dạng đẹp, chẳng hạn như $ 32. 95. Trong Java, hành vi của một đối tượng được cung cấp bởi các phương thức của nó. Do đó, phương thức định dạng của lớp NumberFormat là những gì cung cấp các hành vi định dạng cho các đối tượng NumberFormat.