Làn sao để liên kết class trong java bằng switch

Em đang học java mà đang bị kẹt chỗ này. Mong mọi người giúp đỡ.
Đây là code của em:

package lap2;
import java.util.Scanner;

public class bai4 {
public static void main(String[] args){
     System.out.println("+-------------------------------+");
     System.out.println("1. Giải phương trình bậc nhất");
     System.out.println("2. Giải phương trình bậc 2");
     System.out.println("3. Tính tiền điện");
     System.out.println("4. Kết thúc");
     System.out.println("+-------------------------------+");

     Scanner nhap = new Scanner(System.in);
     System.out.print("Mời bạn nhập lựa chọn: ");

     bai1 b1 = new bai1();
     bai2 b2 = new bai2();
     bai3 b3 = new bai3();

     int choise = Integer.parseInt(nhap.nextLine());

     switch (choise) {
         case 1:
             b1.main();
             break;
         case 2:
             b2.main();
             break;
         case 3:
             b3.main();
             break;
         case 4:
             System.out.print("Tạm biệt các bạn.");
             System.exit(0);
     }
     }
}

3 bài toán trước đã được giải quyết và xuất ra với 3 file java là:
bai1.java
bai2.java
bai3.java
Bài 4 này người ta yêu cầu tạo menu để gọi 3 bài trước. tức là khi nhấn 1 thì bài 1 sẽ bắt đầu chạy. và tương tự

Thì bạn tạo menu ra vd :

  1. Nhap ten khach hang
  2. Luu ten khach hang
  3. Xuat ten khach hang
    Cho nhập vào 1 số x rồi switch (x) để gọi 3 cái phương thức kia ra.
    case 1 thì gọi nhapTenKhachHang(); rồi cứ thế

Em vẫn chưa hiểu đoạn này ạ :frowning: còn danh sách trên em đã tạo được rồi. Mong anh nói sâu hơn tý ạ

bạn tạo 1 biến để người dùng nhập số chọn menu

int chon = new Scanner(System.in).nextInt();
//sau đó dùng switch case
switch (chon) {
 case 1:
  phuongThucMot();
  break;
 case 2:
  phuongThucHai();
  break;
 case 3:
  phuongThucBa();
  break;
 default:
  System.out.print("Moi ban chon so tu mot den 3");
  break;
}

À nếu như vậy thì em không nói rồi ạ :frowning:
Nó như vầy nhé.
có 2 bài tập

  1. Bài 1 là giải pt bậc nhất
  2. bài 2 là giải pt bậc 2
    2 bài trên đã được giải quyết
    Đến bài 3 là tạo 1 menu để lôi 2 ông đó vô. ví dụ danh sách là:
  3. giải ptbn
  4. giải pt bậc 2
    chọn 1 thì nó sẽ ra bài 1 và mình nhập abc
    kiểu vậy đó ^^!

Thì có khác gì đâu

switch (choice) {
 case 1:
   giaiPtbn();
   break;
case 2:
   giaiPtb2();
   break;
default:
   System.out.print("Moi ban chon so tu mot den 2");
   break;
}

Hỏi cái nhé :smiley:

1/ Bạn muốn liên kết 1-3 class trong1 project lại?
2/ Bạn muốn liên kết các class trong những project riêng lẻ (tức khi build mỗi class sinh ra 3 file jar khác nhau)

Thì 2 cái trên ý bạn là cái nào?

3 Likes

Bạn nên đọc lại lại về OOP . và nên đặt ra những câu hỏi cụ thể để người giúp bạn dễ mà trả lời. Bạn có thể post code 2 bài 1 và 2 của bạn lên thì tốt hơn

ý thứ 2 bạn ạ…

Vậy thì sau khi build ra các file jar. Bạn có thể tạo 1 project mới và include các file jar này lại rồi tiến hành import xài như class bình thường là được :smiley:

2 Likes

đây là code của em ạ:

nhưng nó vẫn báo lỗi ở 3 lệnh case :frowning:
E đang thử thêm .main nhưng vẫn không dc :frowning:

Hi hunter
Bạn có thể đặt lại câu hỏi cho rõ ý được không ?
Mình mới chỉ nghe đến kế thừa chứ mình nghe liên kết class lần đầu.

Nó là liên kết các file java trong 1 project. Ví dụ như có 3 file java và mình tạo ra 1 file mới sau đó import 3 file trên để thực hiện 1 menu @@

Hi hunter.
Bạn code bằng IDE hay build bằng terminal ?
Nếu code bằng IDE thì các file java trong 1 project đều đã được liên kết với nhau.

mình dùng IDE nhưng nó vẫn bị lỗi ở mấy câu lệnh “case” chạy không được. Mình thử nhiều cách và cũng không dc @@

Hi hunter.
Cái này là bạn gọi hàm hay làm gì ?

switch (choise) {
case 1:
b1.main();
break;
case 2:
b2();  //Gọi hàm gì ?
break;
case 3:
b3(); //Gọi hàm gì ?
break;
case 4:
System.out.print("Tạm biệt các bạn.");
System.exit(0);
}

à đó có nghĩa là ở trên mình khai báo nó liên kết với 3 file java ở trên là:

Sau đó mình bắt đầu lựa chọn. ví dụ ta cọn 1 => bài 1. và chương trình bắt đầu giải phương trình. Nhưng nó bị lỗi ở chỗ đó. Mình chưa biết khai báo sao cả ^^!~ mình thử dùng b1(); bla bla bla nhiều cách, cho đến giờ thử dùng main() nhưng vẫn không được :frowning: =)) tại lúc copy mình đang sử dụng các cách khác nhau xem có báo lỗi không nên nó vậy ^^!

Hi hunter.
Vấn đề của bạn nằm ở phân tích thiết kế và lập trình hướng đối tượng.
Bạn nên học lại cho kỹ.

thì mình vẫn đang học hướng đối tượng và đang loay hoay giải quyết mà bạn @@

Hi hunter.
Bạn thử làm như này xem.

Trong BaiX bạn ghi đè lại phương thức Action() bằng code giải cho từng bài.
trong main thì gọi

switch (choise) {
case 1:
b1.Action();
break;
case 2:
b2.Action();
break;
case 3:
b3.Action();
dèault;
case 4:
System.out.print("Tạm biệt các bạn.");
System.exit(0);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?