Thành viên:Object Oriented Programming/Chương 1/Bài 2
Ở mục 2 của bài học trước, ta làm việc với biến s và truy cập đến thuộc tính name, birthday và phương thức average. Ta có thể truy cập như vậy là vì biến s có kiểu Student. Student là kiểu không nguyên thủy và phải do người dùng định nghĩa. Ai đó đã tự định nghĩa kiểu Student gồm các thuộc tính name, birthday và phương thức average nên chúng ta mới có thể dùng nó. Bài học này cho chúng ta biết cách định nghĩa như vậy.
Lớp
[sửa]Lớp (class) là bản định nghĩa một kiểu dữ liệu gồm các thuộc tính và phương thức. Các đối tượng có kiểu dữ liệu này sẽ mang những thuộc tính và phương thức đó.
Ta sẽ tiến hành định nghĩa kiểu Student đã dùng ở bài trước.
Đầu tiên hãy khai báo một lớp tên là Student.
class Student {
}
Ta sẽ khai báo biến là những thuộc tính của Student.
class Student {
String name;
String birthday;
double mathScore;
double historyScore;
double englishScore;
}
Sau đó, ta viết phương thức average để tính điểm trung bình
class Student {
String name;
String birthday;
double mathScore;
double historyScore;
double englishScore;
double average() {
return (mathScore + historyScore + englishScore) / 3;
}
}
Tạo đối tượng
[sửa]Từ bài trước, ta đã biết để tạo một đối tượng s thuộc kiểu Student thì dùng câu lệnh :
Student s = new Student();
Tuy nhiên trong Java, câu lệnh trên không hẳn là khai báo đối tượng s. Để làm rõ vấn đề, ta sẽ học hai câu lệnh: một là câu lệnh tạo đối tượng, hai là câu lệnh khai báo tham chiếu.
Để tạo một đối tượng có kiểu là Student, ta viết new Student(). Câu lệnh tạo ra một đối tượng thực sự, có thể truy cập đến thuộc tính và phương thức của nó. Để tạo một tham chiếu có kiểu là Student, ta viết Student s. Khi này, s thực chất là một tham chiếu dùng để "quản lý" một đối tượng kiểu Student, chứ không phải đối tượng kiểu Student.
Khi viết là Student s = new Student(), ta thực hiện đồng thời hai việc, một là tạo ra một đối tượng mới có kiểu Student, hai là cho phép biến s được "quản lý" đối tượng vừa tạo. Một biến "quản lý" một đối tượng được hiểu là biến đó có thể đại diện cho đối tượng truy cập đến các thuộc tính, phương thức của nó. Trong một số trường hợp, có thể là vô tình của có chủ ý, một đối tượng sẽ được quản lý bởi hai tham chiếu trở lên, và tác động của tham chiếu này có thể ảnh hưởng đến tham chiếu kia.