Java 区域计算代码在方法名和默认构造函数之间需要分号?
我编写了一个代码,可以接受用户输入,并根据输入的尺寸计算三角形、圆形或矩形的面积。代码在方法中出现了3个错误,即在方法名和方法名后面的()之间应该有一个分号。这不是一篇“做我的家庭作业”的帖子,但我真的找到了我能找到的所有资源,真的需要一些帮助,知道如何做。代码如下,返回错误的区域以大写字母表示Java 区域计算代码在方法名和默认构造函数之间需要分号?,java,notepad++,java.util.scanner,Java,Notepad++,Java.util.scanner,我编写了一个代码,可以接受用户输入,并根据输入的尺寸计算三角形、圆形或矩形的面积。代码在方法中出现了3个错误,即在方法名和方法名后面的()之间应该有一个分号。这不是一篇“做我的家庭作业”的帖子,但我真的找到了我能找到的所有资源,真的需要一些帮助,知道如何做。代码如下,返回错误的区域以大写字母表示 import java.util.Scanner; public class areacalculatorNLW { private double rektlength; private doub
import java.util.Scanner;
public class areacalculatorNLW
{
private double rektlength;
private double rektwidth;
{
double GETREKT(){
System.out.println("Enter the length: ");
rektlength = scan.next();
System.out.println("Enter the width: ");
rektwidth = scan.next();
double rektarea = rektlength * rektwidth;
System.out.println(rektarea);
}
}
private double radius;
{
double GETCIRCLE(){
System.out.println("Enter the radius of the circle. ");
radius = scan.next();
double circlearea = (radius * Math.PI) * (radius * Math.PI);
System.out.println(circlearea);
}
}
private double trianglelength;
private double trianglewidth;
{
double GETTRIANGLE(){
System.out.println("Enter the triangle length: ");
trianglelength = scan.next();
System.out.println("Enter the triangle width: ");
trianglewidth = scan.next();
trianglearea = (trianglelength * trianglewidth) / 2;
System.out.println(trianglearea);
}
}
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Hello, what would you like to calculate?");
System.out.println("Type 1 to calculate the area of a rectangle.");
System.out.println("Type 2 to calculate the area of a circle.");
System.out.println("Type 3 to calculate the area of a triangle.");
System.out.println("Type 4 to exit the program.");
int choice;
choice = scan.nextInt();
if(choice == 1){
this.getrekt();
}
if (choice == 2){
this.getcirlce();
}
if (choice == 3){
this.gettriangle();
}
}
}
不能在静态方法中使用
this
,因为它引用的是当前实例,而静态方法中不存在该实例
必须创建类的实例才能调用非静态方法:
areacalculatorNLW calc = new areacalculatorNLW ();
然后调用该实例的方法。例如:
calc.GETREKT();
此外,您还应该学习Java命名约定
编辑:如其他评论/答案中所述,您的方法周围还有额外的大括号,应该删除。删除额外的括号:
{
double GETREKT(){
System.out.println("Enter the length: ");
rektlength = scan.next();
System.out.println("Enter the width: ");
rektwidth = scan.next();
double rektarea = rektlength * rektwidth;
System.out.println(rektarea);
}
}
对此
double GETREKT(){
System.out.println("Enter the length: ");
rektlength = scan.next();
System.out.println("Enter the width: ");
rektwidth = scan.next();
double rektarea = rektlength * rektwidth;
System.out.println(rektarea);
}
您已经放置了额外的花括号,标记如上。整个方法不需要这些;只有方法正文。显示的代码有很多错误 使用像Eclipse这样的IDE会立即告诉您出了什么问题 一个基本的语法错误:您的方法周围有一个(额外的){},这是一个错误。Java中的方法类似于
public void foo() {}
而你写的
{ public void foo() {} }
理解中的一个基本错误:您的主要方法是静态方法。但是,您的其他方法不是静态的。但是,在main方法中没有类的实例,因此不能调用
this.
您可以通过使用创建实例来修复此问题
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
areacalculatorNLW myInstance = new areacalculatorNLW();
myInstance.getrekt();
...
除此之外,您正在使用一个变量trianglearea,您没有定义该变量,并且主方法中的扫描变量在其他方法中不可见
我强烈建议你找其他人一起做结对编程。您应该提高对Java基本概念的了解,否则这将需要很长时间才能正确完成。您的代码中存在许多问题:
import java.util.Scanner;
public class AreaCalculator {
private double trianglearea;
private double rektlength;
private double rektwidth;
private double trianglelength;
private double trianglewidth;
void getRect(Scanner scan) {
System.out.println("Enter the length: ");
rektlength = Double.valueOf(scan.next());
System.out.println("Enter the width: ");
rektwidth = Double.valueOf(scan.next());
double rektarea = rektlength * rektwidth;
System.out.println(rektarea);
}
private double radius;
void getCircle(Scanner scan) {
System.out.println("Enter the radius of the circle. ");
radius = Double.valueOf(scan.next());
double circlearea = (radius * Math.PI) * (radius * Math.PI);
System.out.println(circlearea);
}
void getTriangle(Scanner scan) {
System.out.println("Enter the triangle length: ");
trianglelength = Double.valueOf(scan.next());
System.out.println("Enter the triangle width: ");
trianglewidth = Double.valueOf(scan.next());
trianglearea = (trianglelength * trianglewidth) / 2;
System.out.println(trianglearea);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Hello, what would you like to calculate?");
System.out.println("Type 1 to calculate the area of a rectangle.");
System.out.println("Type 2 to calculate the area of a circle.");
System.out.println("Type 3 to calculate the area of a triangle.");
System.out.println("Type 4 to exit the program.");
int choice;
choice = scan.nextInt();
AreaCalculator AreaCalculator = new AreaCalculator();
if (choice == 1) {
AreaCalculator.getRect(scan);
}
if (choice == 2) {
AreaCalculator.getCircle(scan);
}
if (choice == 3) {
AreaCalculator.getTriangle(scan);
}
}
}
我不认为这个错误是因为这个关键字。那是因为额外的括号。还是我错了?
import java.util.Scanner;
public class AreaCalculator {
private double trianglearea;
private double rektlength;
private double rektwidth;
private double trianglelength;
private double trianglewidth;
void getRect(Scanner scan) {
System.out.println("Enter the length: ");
rektlength = Double.valueOf(scan.next());
System.out.println("Enter the width: ");
rektwidth = Double.valueOf(scan.next());
double rektarea = rektlength * rektwidth;
System.out.println(rektarea);
}
private double radius;
void getCircle(Scanner scan) {
System.out.println("Enter the radius of the circle. ");
radius = Double.valueOf(scan.next());
double circlearea = (radius * Math.PI) * (radius * Math.PI);
System.out.println(circlearea);
}
void getTriangle(Scanner scan) {
System.out.println("Enter the triangle length: ");
trianglelength = Double.valueOf(scan.next());
System.out.println("Enter the triangle width: ");
trianglewidth = Double.valueOf(scan.next());
trianglearea = (trianglelength * trianglewidth) / 2;
System.out.println(trianglearea);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Hello, what would you like to calculate?");
System.out.println("Type 1 to calculate the area of a rectangle.");
System.out.println("Type 2 to calculate the area of a circle.");
System.out.println("Type 3 to calculate the area of a triangle.");
System.out.println("Type 4 to exit the program.");
int choice;
choice = scan.nextInt();
AreaCalculator AreaCalculator = new AreaCalculator();
if (choice == 1) {
AreaCalculator.getRect(scan);
}
if (choice == 2) {
AreaCalculator.getCircle(scan);
}
if (choice == 3) {
AreaCalculator.getTriangle(scan);
}
}
}