Lỗi sử dụng Multiple Classes trên Java

Mn cho mình hỏi sao mình không thể tạo object từ class Box trong class BoxDemo5 như hình trên.
Mà lỗi là cannot find symbol. Mong mn giúp đỡ.

Box bạn để ở đâu? Trông như 2 thằng ở 2 project khác nhau mà nhỉ?

Class Box của bạn đang ở mức access modifier Default, nghĩa là nếu bạn muốn truy xuất class này thông qua class BoxDemo5 thì cả 2 class phải cùng package.

Theo mình, có 2 cách giải quyết:
+1 là chuyển class Box về cùng package với BoxDemo5
+2 là đổi access modifier của Box từ Default sang Public

:grin:

1 Like

thêm import box.* ở trên BoxDemo5 hoặc bỏ cùng 1 package

thêm từ khóa "public " trước class Box + hàm contructor( Box(w,h,d) ) để về access modifier public

Mình chuyển về 1 package để thành access modifier public r mà vẫn không đc :cry:


Runtime cho chỉ ra lỗi rõ quá rồi còn gì: phương thức main không được tìm trong class Box. Có nghĩa là bạn chỉ được khai báo phương thức main ở class chính là Box thôi, giờ chuyển phương thức này qua class Box đi . Nên nhớ rằng DemoBox chỉ là class phụ (không có public) và Box là class chính (có public)

Cảm ơn b nhiều. Nhưng mình còn 1 chỗ nữa chưa hiểu là: nếu hàm main cho được vào box thì tạo class boxDemo làm gì?( đây là 1 ví dụ trong sách java mình đang học)

Có thể vì bạn mới học nên sách ghi 2 class trong 1 file để tiện theo dõi, chứ nếu là project thực sự thì tốt nhất là 1 file 1 class :grin:, với cách này, bạn có thể đặt phương thức main của bạn ở đâu cũng chạy được, miễn là 2 thằng cùng package hoặc cùng project :grin:

1 Like

Hình như 2 file ở 2 project khác nhau kìa @@

Nếu em viết 2 hay nhiều class chung 1 file thì class nào trùng tên file thì class đó có hàm Main và để public.

Trường hợp này tên file là Box vì vậy class Box sẽ để public. BoxDemo5 chỉ là 1 class con được tạo bên trong nó thôi.
Em xóa public ở class BoxDemo5 đi là được.

2 Likes

cảm ơn anh.:grinning:

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