Bạn phải hiểu sự khác biệt giữa một lớp và một thể hiện của lớp đó. Nếu bạn nhìn thấy một chiếc xe hơi trên đường phố, bạn sẽ biết ngay đó là một chiếc xe ngay cả khi bạn không thể nhìn thấy mẫu hoặc loại. Điều này là do bạn so sánh những gì bạn thấy với lớp "xe hơi". Các lớp chứa tương tự như tất cả các xe. Hãy nghĩ về nó như một khuôn mẫu hoặc một ý tưởng.
Đồng thời, chiếc xe bạn nhìn thấy là một ví dụ của lớp "xe hơi" vì nó có tất cả các đặc tính mà bạn mong đợi: Có ai đó lái nó, nó có động cơ, bánh xe.
Vì vậy, lớp nói "tất cả các xe đều có màu" và ví dụ nói "chiếc xe cụ thể này có màu đỏ".
Trong thế giới OO, bạn xác định lớp và bên trong lớp, bạn xác định trường loại Color
. Khi lớp được khởi tạo (khi bạn tạo một thể hiện cụ thể), bộ nhớ được dành riêng cho màu sắc và bạn có thể cung cấp cho cá thể cụ thể này một màu. Vì các thuộc tính này là cụ thể, chúng không tĩnh.
Các trường và phương thức tĩnh được chia sẻ với tất cả các trường hợp. Chúng dành cho các giá trị dành riêng cho lớp và không phải là một thể hiện cụ thể. Đối với các phương thức, đây thường là các phương thức trợ giúp toàn cầu (như Integer.parseInt()
). Đối với các trường, nó thường là hằng số (như các loại ô tô, tức là thứ mà bạn có bộ giới hạn không thay đổi thường xuyên).
Để giải quyết vấn đề của bạn, bạn cần khởi tạo một thể hiện (tạo một đối tượng) của lớp để thời gian chạy có thể dự trữ bộ nhớ cho cá thể (nếu không, các thể hiện khác nhau sẽ ghi đè lên nhau mà bạn không muốn).
Trong trường hợp của bạn, hãy thử mã này như một khối bắt đầu:
public static void main (String[] args)
{
try
{
MyProgram7 obj = new MyProgram7 ();
obj.run (args);
}
catch (Exception e)
{
e.printStackTrace ();
}
}
// instance variables here
public void run (String[] args) throws Exception
{
// put your code here
}
main()
Phương thức mới tạo một thể hiện của lớp mà nó chứa (nghe có vẻ lạ nhưng vì main()
được tạo bằng lớp thay vì với thể hiện, nên nó có thể làm điều này) và sau đó gọi một phương thức cá thể ( run()
).
C
. Nhưng nó sẽ không phải là một thứ rất tốt. Cố gắng sử dụng Java theo cách nó được sử dụng, như một ngôn ngữ hướng đối tượng.