Traffic Count

Không cần main vẫn chạy được Java! Khám phá BlueJ

Môi trường lập trình Java khiến bạn mê ngay từ buổi đầu

Chạy ứng dụng Java mà không cần viết hàm main!

1. BlueJ là gì và tại sao bạn cần nó?

Nếu bạn từng cảm thấy viết Java thừa nặng nề chỉ để chạy một vài dòng code thử nghiệm - luôn phải tạo class, viết public static void main, rồi mới chạy - thì BlueJ chính xác là thứ bạn đang cần.

BlueJ là môi trường phát triển Java được thiết kế đặc biệt cho việc dạy và học lập trình. Nó được xây dựng bở đội ngũ của Đại học Monash (Melbourne, Úc) cùng Đại học Nam Đan Mạch, và hoàn toàn miễn phí.

Điểm đặc biệt nổi bật nhất: Trong BlueJ, bạn có thể tạo đối tượng từ bất kỳ class nào và gọi bất kỳ phương thức nào NGAY LậP TỨC - mà không cần viết hàm main(). Đây là cách tư duy hoàn toàn mới về lập trình hướng đối tượng!

Các điểm mạnh khiến BlueJ trở nên khậc biệt:

  • Trực quan hóa toàn bộ cấu trúc class và mối quan hệ kế thừa ngay trên màn hình
  • Tạo đối tượng và gọi phương thức tức thì không qua main()
  • Debug đơn giản, dễ hiểu dành cho người mới bắt đầu
  • Tạo ứng dụng standalone và applet trực tiếp từ môi trường
  • Hoàn toàn miễn phí, chạy trên Windows, macOS và Linux

2. Khám phá giao diện - Đơn giản đến ngạc nhiên

Sau khi khởi động BlueJ và mở project mẫu "people", màn hình chính hiện ra với các class được hiển thị dưới dạng biểu đồ UML trực quan. Bạn thấy ngay: Database, Person (abstract), Staff và Student - cùng mũi tên kế thừa.

Hình 1: Giao diện chính của BlueJ - biểu đồ class hiển thị trực quan mối quan hệ kế thừa

Chỉ cần nhìn qua là bạn hiểu ngay cấu trúc hướng đối tượng: Staff và Student kế thừa từ Person, còn Person sử dụng Database. Không cần vẽ tay, BlueJ tự động cập nhật biểu đồ mỗi khi bạn chỉnh sửa code.

3. Tính năng độc đáo: tạo đối tượng và chạy không cần main()

Hãy tưởng tượng: bạn vừa viết xong class Staff. Thay vì viết cả chương trình mới kiểm tra, trong BlueJ bạn chỉ cần click chuột phải vào class icon - một menu xuất hiện ngay lập tức!

Hình 2: Menu popup của class - hiển thị các constructor có sẵn để tạo đối tượng ngay lập tức

Chọn new Staff(), một hộp thoại xuất hiện hỏi tên instance (mặc định gợi là staff_1). Nhấn OK - đối tượng được tạo ra và xuất hiện màn hình như sau.

Hình 3: Hộp thoại tạo đối tượng không có tham số

Điểm tuyệt vời: Sau khi tạo đối tượng, click chuột phải lên nó - toàn bộ phương thức public hiện ra trong menu! Gọi getRoom(), setRoom(), toString() ngay tức khắc. Không có bất kỳ ứng dụng nào khác cho phép bạn test từng class độc lập theo cách này!

Hình 4: Đối tượng staff_1 xuất hiện trên object bench - sẵn sàng để tương tác

Hình 5: Menu phương thức của đối tượng - gọi trực tiếp mà không cần viết thêm bất kỳ code nào

Gọi hàm có tham số cũng dễ không kém: chọn setRoom(), một hộp thoại xuất hiện cho phép nhập giá trị tham số ngay lập tức.

Hình 6: Hộp thoại gọi phương thức có tham số - đơn giản và trực quan

4. Chỉnh sửa và biên dịch – thú vị với lỗi Compiler

4.1 Mở và chỉnh sửa class

Double-click vào icon của bất kỳ class nào là mở ngay trình soạn thảo. BlueJ hỗ trợ toàn bộ cú pháp Java chuẩn - không có giới hạn nào.

4.2 Biên dịch và xử lý lỗi

Sau khi chỉnh sửa, icon của class sẽ xuất hiện với nền kẻ sọc (chưa biên dịch). Nhấn nút Compile trong editor hoặc trong cửa sổ chính. Nếu có lỗi, dòng lỗi được bôi đậm và thông báo hiển thị phía dưới.

Hình 7: Thông báo lỗi compiler và nút "?" hỗ trợ giải thích lỗi bằng ngôn ngữ dễ hiểu

Mẹo: Khi có lỗi compiler, hãy click vào dấu "?" ngày bên cạnh thông báo. BlueJ sẽ giải thích lỗi đó bằng ngôn ngữ dễ hiểu - cực kỳ hữu ích cho người mới học Java!

Lưu ý: Nguồn code được tự động lưu khi đóng editor hoặc trước khi biên dịch. Bạn không cần lo lưu thủ công.

5. Kiểm tra nội bộ đối tượng - Debug không đau

5.1. Inspect đơn giản

Click chuột phải vào bất kỳ đối tượng nào trên object và chọn "Inspect". Một cửa sổ hiện ra lập tức đưa toàn bộ giá trị các field bên trong trước mắt bạn:

Hình 8: Cửa sổ Inspection hiển thị nội bộ đối tượng Staff với các giá trị cụ thể

5.2 Inspect đối tượng lồng nhau

Khi một field là đối tượng (hiển thị là <object reference>), bạn có thể double-click để mở thêm một cửa sổ Inspect khác - đi sâu vào bên trong đối tượng đó. Project people2 trong bộ mẫu có đối tượng Address lồng trong Person, rất tiện để thử nghiệm tính năng này.

Hình 9: Project people2 - class Person chứa đối tượng Address lồng bên trong

Hình 10: Inspection với object reference - click Inspect để đi sâu hơn

Hình 11: Inspection của đối tượng lồng nhau Address - hiển thị đầy đủ thông tin

6. Truyền đối tượng giữa các phương thức - Click vào là xong

Đây là một trong những tính năng khiến BlueJ trở nên thực sự hấp dẫn: khi một phương thức yêu cầu tham số là đối tượng, bạn không cần gõ tên - chỉ cần CLICK vào đối tượng trên object là tự động điền vào!

Ví dụ: tạo một Database object và một Staff object. Gọi addPerson() trên Database, khi cần truyền Person vào - chọn addPerson trong menu, rồi click vào staff_1 trên object. Tên đối tượng tự động điền vào hộp thoại. Điều này giống hệt như lập trình không có cú pháp!

Mô hình này phản ánh chính xác tư duy OOP: object gửi message cho object khác. BlueJ biến khái niệm trừu tượng thành hành động cụ thể mà bạn có thể thấy và cảm nhận.

7. Tạo Project mới từ đầu

7.1 Tạo project

Chọn Project → New... từ menu. Nhập tên, chọn vị trí - BlueJ tạo thư mục và mở project rỗng.

7.2 Tạo class mới

Click nút "New Class" trên thanh công cụ. Nhập tên class và chọn loại: Standard, Abstract, Interface. BlueJ tự động sinh code skeleton cú pháp chính xác - bạn có thể compile ngay mà không cần viết gì thêm.

7.3 Tạo mối quan hệ (mũi tên)

Nhấn nút mũi tên đơn (uses) hoặc mũi tên đôi (extends/implements) rồi kéo giữa các class trên sơ đồ. BlueJ phiên bản mới tự động hiển thị mối quan hệ giữa các class dựa trên code (extends, implements), thay vì vẽ mũi tên để tạo code như các phiên bản cũ.

8. Debug như dân chuyên nghiệp

Debugger của BlueJ được thiết kế với mục tiêu: sử dụng suốt đời không cần học thêm, gồm:

  • Breakpoint: tạm dừng thực thi tại một dòng cụ thể
  • Step / Step Into: chạy từng dòng một, hoặc đi sâu vào trong một phương thức
  • Inspect variables: biến được hiển thị tự động, không cần câu lệnh đặc biệt

8.1 Đặt Breakpoint

Click vào vùng bên trái của dòng code cần dừng. Một biểu tượng "stop" xuất hiện. Mở cửa sổ debugdemo, tìm method loop, và đặt breakpoint trong vòng lặp for.

Hình 12: Breakpoint được đặt trong vòng lặp - biểu tượng stop đỏ xuất hiện

8.2 Cửa Sổ Debugger

Khi thực thi chạm breakpoint, cửa sổ debugger hiện ra với đầy đủ thông tin: call stack, biến toàn cục, biến của đối tượng, biến cục bộ - tất cả hiển thị và tự cập nhật mỗi bước.

Hình 13: Cửa sổ Debugger - hiển thị toàn bộ trạng thái thực thi trong thời gian thực

Bí quyết debug: Dùng Step để chạy từng dòng. Dùng Step Into khi dòng đó có gọi phương thức khác và bạn muốn đi vào bên trong. Dùng Halt khi chương trình chạy quá lâu để kiểm tra có bị vòng lặp vô hạn không.

9. Xuất ứng dụng Standalone 

Tạo file JAR thực thi

BlueJ có thể đóng gói toàn bộ project thành file .jar độc lập mà người dùng có thể chạy trực tiếp. Chọn Project → Export, chọn "Store as jar file", chọn main class, rồi đặt tên file.

Hình 14: Hộp thoại Export - tạo file JAR thực thi chỉ với vài click

Sau đó chạy bằng lệnh java -jar hello.jar trong terminal. Đơn giản và hiệu quả.

10. Các tính năng bổ sung hữu ích

10.1 Gọi phương thức static không cần đối tượng

Click chuột phải vào icon của class - các phương thức static (kể cả main()) xuất hiện trong menu. Bạn có thể gọi main() trực tiếp và truyền mảng String một cách dễ dàng.

10.2 Sinh tài liệu tự động

Chọn Tools → Project Documentation - BlueJ tự động sinh tài liệu Javadoc cho toàn bộ project và mở trình duyệt để xem. Trong editor, bạn có thể chuyển sang chế độ "Interface" để xem tài liệu theo phong cách Javadoc ngay bên trong.

10.3 Sử dụng class từ thư viện

Chọn Tools → Use Library Class, nhập tên đầy đủ (ví dụ: java.lang.String). BlueJ liệt kê toàn bộ constructor và phương thức static, cho phép bạn tạo và thử nghiệm đối tượng của bất kỳ class thư viện nào ngay lập tức.

11. Tóm Tắt - BlueJ thay đổi cách bạn nghĩ về Java

BlueJ không chỉ là một IDE - nó là cách tư duy mới về lập trình hướng đối tượng. Khi bạn có thể tạo đối tượng, gọi phương thức, kiểm tra nội bộ - tất cả chỉ bằng các click chuột - bạn hiểu OOP sâu hơn bất kỳ lý thuyết nào.

Bảng tóm tắt các thao tác chính:

Thao tác

Cách làm

Mở project

Project → Open

Tạo đối tượng

Click phải class icon → constructor

Gọi phương thức

Click phải đối tượng → chọn method

Mở editor

Double-click icon class

Biên dịch

Nút Compile trong editor hoặc cửa sổ chính

Debug

Click vùng trái để đặt breakpoint

Xuất JAR

Project → Export

Chạy applet

Click phải class → Run Applet

 

Tài liệu tham khảo:

David Barnes (Author), Michael Kölling (Author) (2016), Objects First with Java: A Practical Introduction Using BlueJ

ThS. Trương Châu Long - Trưởng bộ môn ngành CNTT - HTTT