识别方法的问题

时间:2016-02-13 18:48:11

标签: java methods

我是一名新编码员,我的方法遇到了一些麻烦。我做了一些但是在主要方法中没有检测到它们。 (P.S我还没有填写大部分方法,因为我想先解决这个问题。) 感谢大家。

package area;
     import java.util.*;

     /**
      *
      * @author domendes
      */

     public class Area {


         public static void main(String[] args) {
             Scanner kbdln = new Scanner(System.in);
             System.out.println("Welcome to the area calculating code! Which shape would you like to calculate the area of?");
             System.out.println("Press 1 for a Triangle, 2 for a Circle, 3 for a Rectangle, and 0 to quit.");
             int request = kbdln.nextInt();
             if (request == 1) {
                 areaTriangle();
             } else {
                 if (request == 2) {
                     areaCircle();
                 } else {
                     if (request == 3) {
                         areaRectangle();
                     } else {
                         if (request < 1) {
                             System.out.println("Goodbye");
                             return;
                         }
                     }
                 }
             }

         }

     }

     public static void areaTriangle() {
         Scanner kbdln = new Scanner(System.in);
         System.out.println("Welcome to the Tirangle area cacluator. Enter in the height of your triangle");
         double triBase = kbdln.nextDouble();
     }


     public static void areaCircle() {

     }

     public static void areaRectangle() {}

     }

4 个答案:

答案 0 :(得分:0)

在Java中,一切都是对象。因此,您创建的方法实际上是属于您的Area类的方法。如果要访问它们,则必须使用Area类来引用它们。

鉴于您已创建static方法(这意味着您的方法处于类级别而不是对象级别。您应该阅读更多有关它的信息)。您可以使用classname.methodname访问它们。在你的情况下,它将是Area.areaTriangle()

答案 1 :(得分:0)

你的if / else语句结构不合理。第一个语句应为if,其后的每个语句应为elseif,最后一个语句应为else。但是在这种情况下,switch语句最好

switch(request){
    case 1:
        areaTriangle();
        break;
   case 2:
        areaCircle();
        break;
   case 3:
        areaRectangle();
        break;
   default:
        System.out.println("Goodbye");
}

答案 2 :(得分:0)

  

主要方法

中未检测到它们

main方法是静态上下文,这意味着如果您尝试从Area类外部调用这些方法,则必须执行{ "id": 6, "server_name": "server1", "alias": "", "ip_address": "192.168.1.7", "endpoint": [ { "id": 23, "server_id": 6, "application_id": 10, "application": null } ] }

或者,你可以定义一个Area.areaTriangle()类,就像这样。

然后,如果你想在任何其他类中使用这些方法,你可以做

AreaPrompter
AreaPrompter prompter = new AreaPrompter();
prompter.whateverMethodNameHere();

答案 3 :(得分:0)

    public static void main(String [] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("Press 1 for a Triangle, 2 for a Circle, 3 for a Rectangle, and 0 to quit."
int num = sc.nextInt();
    if(num == 1){
     areaTriangle();
    }else if(num == 2){
     areaCirlce();
    }else if(num == 3){
     areaRectangle();
    else{
       System.out.println("GoodBye");
    }

调用方法的方式没有任何问题,因为main方法是static,您可以直接调用static方法而无需使用任何类对象等。