2013-05-29 24 views
6

Tôi rất mới với Lập trình JAVA và đang cố gắng tạo một Chương trình Java bao gồm 2 lớp và một giao diện. Lớp chính là StartingPoint.java, lớp còn lại là Calculate.java và giao diện là Equations.java.Tôi đang cố gắng tạo một máy tính với Java và 3 Lớp

Cho đến nay tôi có một phương trình trong giao diện Equation.java bao gồm một hàm bổ sung đơn giản. Tôi muốn chương trình nhắc người dùng chèn 2 số nguyên và trả về giải pháp đã thêm. Mọi sự trợ giúp sẽ rất được trân trọng.

Đây là lớp học chính của tôi gọi StartingPoint.java

import java.util.Scanner; 


public class StartingPoint { 
public static void main (String Hoda[]){ 

    System.out.println("Please enter two values"); 

    Scanner a = new Scanner(System.in); 
    Scanner b = new Scanner(System.in); 

    Calculate calculator = new Calculate(); 

    int answer = calculator.add(in.nextInt(a), nextInt(Scanner b)); 
    System.out.print(answer); 
} 
} 

Đây là lớp thứ hai của tôi: Calculate.java

import java.util.Scanner; 


public class Calculate implements Equations { 



@Override 
public int add(Scanner a, Scanner b) { 
    // TODO Auto-generated method stub 
    return (a + b); 
} 

} 

Và đây là giao diện của tôi gọi Equations.java

import java.util.Scanner; 



public interface Equations { 
int add(Scanner a, Scanner b); 
} 
+3

Và câu hỏi của bạn là gì? –

+0

Tôi gặp lỗi trên lớp Calculate.java trên dòng trả về (a + b). Tôi cảm thấy như vậy là những gì không cho phép tôi tiến hành thêm bất kỳ – Mustafa

+4

Giao diện của bạn không nên chấp nhận hai máy quét. Nó sẽ chấp nhận hai 'int'. Làm thế nào máy tính của bạn có được đầu vào của nó không quan trọng đối với công cụ tính toán chính nó. Thay vào đó, lớp 'StartingPoint' của bạn sẽ thu thập hai' int 'từ người dùng và chuyển chúng vào máy tính. – dlev

Trả lời

2

Bạn có thể muốn chuyển đổi các giá trị thành số nguyên ... như sau:

@Override 
public int add(Scanner a, Scanner b) { 
    int n1=Integer.parseInt(a.next()); 
    int n2=Integer.parseInt(b.next()); 
    return (n1 + n2); 
} 

Tôi thấy bạn mới sử dụng java. Hãy xem xét chức năng của bạn:

public int add(... 

java mong đợi hàm này trả về một số nguyên. Bạn đang trả về dấu +, nhưng a và b là các cá thể của đối tượng Máy quét, không phải là Số nguyên. Vì vậy, chúng ta phải "biến đổi" chuỗi đầu vào thành đối tượng nguyên và số nguyên. Java là một ngôn ngữ cấp cao, vì vậy hầu như mọi đối tượng đều có rất nhiều phương pháp giúp chúng ta làm bất cứ điều gì chúng ta muốn. Trong trường hợp này, lớp Integer có một phương thức tĩnh gọi là parseInt (String args) sẽ phân tích cú pháp chuỗi đã cho và kiểm tra xem nó có phải là số hay không. Nếu nó là số, nó sẽ trả về một số nguyên. Nếu không, nó sẽ ném một ngoại lệ. Đó là lý do tại sao bạn nên xác nhận đầu vào. Nếu bạn nhập một giá trị không phải số, nó sẽ sụp đổ.

+0

Wow! Cảm ơn bạn rất nhiều. Tôi đã dành cả một giờ để tìm kiếm các giải pháp trên internet. Những người như bạn cho tôi hy vọng! Tôi rất trân trọng điều này! Nếu bạn không phiền, bạn có thể hướng dẫn tôi qua những gì bạn đã thay đổi và cách nó giúp mã của tôi không? – Mustafa

+0

Bạn được chào đón :) Tôi sẽ chỉnh sửa câu trả lời ngay bây giờ. –

+0

okay ... vì vậy tôi hiểu rằng hàm parseInt chuyển đổi đầu vào thành một số nguyên, nhưng a.next() và b.next() làm gì? – Mustafa