사용자 입력을 읽고 저장 한 다음 다각형 영역을 계산하는 프로그램을 만들려고합니다.
시도해보고 컴파일하면 오류 느릅 나무는 .toSting 당신은 그 방법에 대해 정의 (단지로 의미가) 된 클래스의 메소드를 호출하려고하는 비 정적non-Static 메서드 toString을 정적 컨텍스트에서 참조 할 수 없습니다.
import java.util.Scanner;
class regularpoTest {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean finished = false;
double s;
double n;
double area;
//starts loop to record data
do {
s =0;
n =0;
System.out.println("Enter the side length, or anything else to quit: ");
s = in.nextDouble();
in.nextLine();
if (in.hasNextDouble()) {
System.out.println("Enter number of sides");
n = in.nextDouble();
area = (s*s*n)/(4*Math.tan(Math.PI/n));
} else {
finished = true;
}
} while(!finished);
//This prints out the student details
System.out.println(regularpo.toString());
}
}
public class regularpo {
private double side;
private double numberOf;
private double area;
public regularpo(double side, double numberOf){
side = 0;
numberOf = 0;
area = 0;
}
public double getSide(){
return side;
}
public double getNumberOf(){
return numberOf;
}
public String toString(){
return ("area = " + area+ " side length "+side+ " number of sides "+numberOf);
}
}
regularpo의 인스턴스가 누락되었습니다. – Eric
관례에 따라 클래스 이름은 대문자로 시작합니다. –
'System.out.println (regularpo.toString());'명백히'regularpo'는 객체 참조가 아닌 클래스 이름입니다. 'toString'은 인스턴스 메소드입니다. 즉, 이것을 사용하려면'regularpo'의 * 인스턴스 *를 제공해야합니다. 그리고 당신은 어디서나'regularpo' 인스턴스를 생성하는 것처럼 보이지 않으므로 사용할 것이 없습니다. –