Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将打印功能合并到计算周长和识别形状的程序中?_Java_String_Function_Printing - Fatal编程技术网

Java 如何将打印功能合并到计算周长和识别形状的程序中?

Java 如何将打印功能合并到计算周长和识别形状的程序中?,java,string,function,printing,Java,String,Function,Printing,我正在努力继续我的形状标识符/周长计算器程序。我需要弄清楚如何将打印函数合并到代码中 public static void main(String[] args) { Scanner scan = new Scanner(System.in); int sideA; int sideB; int sideC; int sideD; System.out.println("Enter side 1: "); sideA = scan.nextInt

我正在努力继续我的形状标识符/周长计算器程序。我需要弄清楚如何将打印函数合并到代码中

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
    int sideA;
    int sideB;
    int sideC;
    int sideD;

    System.out.println("Enter side 1: ");
    sideA = scan.nextInt();

    System.out.println("Enter side 2: ");
    sideB = scan.nextInt();

    System.out.println("Enter side 3: ");
    sideC = scan.nextInt();

    System.out.println("Enter side 4: ");
    sideD = scan.nextInt();

    int perimeter = add(sideA, sideB, sideC, sideD);

    if (sideA == sideB && sideB == sideC && sideC == sideD && sideD == sideA) {
        System.out.println("Forms a square with a perimeter of " + perimeter);
    }

    else {
        System.out.println("Does not form a square.");
    }

}

private static int add(int sideA, int sideB, int sideC, int sideD) {
    return sideA + sideB + sideC + sideD;
}

public class shapePerimeter {
    String shape;
    int perimeter;

    public void print() {
        System.out.println("Forms a " + shape + " with a perimeter of " + perimeter);
    }
}

如上所示,最后一个公共类是我尝试的打印函数。如果它在修饰符、返回类型、参数和语句方面有任何问题,我如何纠正它?

不确定是否要将所有内容分为两个类,但我建议将main中的if/else语句转换为shapePerimeter类中自己的方法。这样,您就可以将ShapePerimeter类扩展到主类,并在主类的构造函数中调用add()方法和This新方法来分配两个变量。从这里开始,我只需将print()方法中的代码移动到main类中,并重新构造print,以便它在构造函数中打印指定的变量

这里有一个解决方案:

import java.util.Scanner;
公共类计算器扩展了ShapePerimeter{
周长;
线状;
公共计算器(int sideA、int sideB、int sideC、int sideD){
周长=添加(sideA、sideB、sideC、sideD);
形状=标识符(sideA、sideB、sideC、sideD);
}
公共静态void main(字符串参数[]){
扫描仪扫描=新扫描仪(System.in);
内西达;
int sideB;
int sideC;
内部的;
System.out.println(“输入侧1:”);
sideA=scan.nextInt();
System.out.println(“输入第2面:”);
sideB=scan.nextInt();
System.out.println(“输入第3面:”);
sideC=scan.nextInt();
System.out.println(“输入第4面:”);
sideD=scan.nextInt();
计算器计算=新计算器(sideA、sideB、sideC、sideD);
系统输出打印LN(计算形状+,周长为“+计算周长);
}
}
公共类形状参数{
公共字符串标识符(intsidea、intsideb、intsidec、intsided){
如果(sideA==sideB&&sideB==sideC&&sideC==sideD&&sideD==sideA){
返回“形成正方形”;
}否则{
return“不成正方形”;
}        
}
公共int add(int sideA、int sideB、int sideC、int sideD){
返回sideA+sideB+sideC+sideD;
}
}

请注意,通过创建构造函数,我们现在可以只创建类的一个对象,传递对象参数的用户输入,然后为print语句返回对象指定的变量。希望这有帮助

作为主类中的方法,您的print方法可能会更好。如果希望将print作为一个单独的类保存,则必须使用构造函数将shape和period传递到类中,或者将shape和period传递到print方法本身中。