01/10/2018, 00:10

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 đỡ.

X viết 02:19 ngày 01/10/2018

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

Tynk Huynk viết 02:15 ngày 01/10/2018

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

Saber Yii viết 02:15 ngày 01/10/2018

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

Thành Nguyễn viết 02:26 ngày 01/10/2018

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


Tynk Huynk viết 02:11 ngày 01/10/2018

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)

Thành Nguyễn viết 02:15 ngày 01/10/2018

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)

Tynk Huynk viết 02:26 ngày 01/10/2018

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 , 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

Sáng Béo viết 02:19 ngày 01/10/2018

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

Đỗ Trung Quân viết 02:25 ngày 01/10/2018

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.

Thành Nguyễn viết 02:12 ngày 01/10/2018

cảm ơn anh.

Bài liên quan
0