01/10/2018, 08:13

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ự

Zhang Jike viết 10:17 ngày 01/10/2018

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ế
hunter viết 10:22 ngày 01/10/2018

Cho nhập vào 1 số x rồi switch (x) để gọi 3 cái phương thức kia ra.

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

Zhang Jike viết 10:23 ngày 01/10/2018

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;
}
hunter viết 10:15 ngày 01/10/2018

À nếu như vậy thì em không nói rồi ạ
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 đó ^^!
Tynk Huynk viết 10:19 ngày 01/10/2018

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;
}
*grab popcorn* viết 10:26 ngày 01/10/2018

Hỏi cái nhé

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?

Zhang Jike viết 10:21 ngày 01/10/2018

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

hunter viết 10:17 ngày 01/10/2018

ý thứ 2 bạn ạ…

*grab popcorn* viết 10:17 ngày 01/10/2018

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

hunter viết 10:16 ngày 01/10/2018

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

đâ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();
break;
case 3:
b3();
break;
case 4:
System.out.print(“Tạm biệt các bạn.”);
System.exit(0);
}
}
}

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

Tao Không Ngu. viết 10:13 ngày 01/10/2018

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.

hunter viết 10:25 ngày 01/10/2018

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

Tao Không Ngu. viết 10:28 ngày 01/10/2018

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.

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

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

Tao Không Ngu. viết 10:19 ngày 01/10/2018

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);
}
hunter viết 10:17 ngày 01/10/2018

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

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

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 =)) 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 ^^!

Tao Không Ngu. viết 10:22 ngày 01/10/2018

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ỹ.

hunter viết 10:13 ngày 01/10/2018

hâ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 @@

Tao Không Ngu. viết 10:17 ngày 01/10/2018

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);
}
hunter viết 10:27 ngày 01/10/2018

vẫn lỗi ạ

Bài liên quan
0