Is there any error in the following code? It shows cant find symbol, symbol: class out location: class System. In the log, it show a lot of errors, including
java.lang.ClassFormatError: Method "" in class Area has illegal signature "(Ljava/lang/Object;)Ljava/lang/System$out$println;"
import java.util.*;
class Area
{
double pi=3.14;
Scanner sc=new Scanner(System.in);
System.out.println("Enter the value of r");
int r=sc.nextInt();
System.out.println("enter the value h");
int h=sc.nextInt();
void areaOfCircle()
{
double area1=pi*r*r;
System.out.println("area of circle="+area1);
}
void areaOfCylinder()
{
double area2=2*pi*r*(r+h);
System.out.println("area of cylinder="+area2);
}
public static void main(String args[])
{
Area a=new Area();
a.areaOfCircle();
a.areaOfCylinder();
}
}
The statement
System.out.println("");
should be written in some block. It cannot be written directly in class.Either it should be inside curly braces
{...}
like:This way is an initializer block.
Or it should be written in a method like:
Your complete program should be like:
In java does not work like this any behaviour you want to implement you must do it inside a block or a method
It needs to be inside an executable block of code to be executed. Otherwise there's no way to know when to execute it.
Remember that a class can only have attributes or methods.Attributes are the properties of the class and methods represent the behaviour of the class.So every implementation goes inside a method or a block.
The only things allowed outside method and constructor declarations are declarations of fields. Since
is not a field declaration, it's not allowed.
You can't place code outside methods in Java. You have
which is not belonging to anything. Fix these issues and the problem will go away.
Just for curiosity, how should code outside methods be called and from what according to you? What I mean is that the execution is made by a code flow which starts from a entry point (the
main
method in Java) and jumps to methods called, eventually spawning other threads. Code which doesn't reside inside a method is not reachable nor it leads to anything.You are missing the java basics.
Problem:
Processing statements should be in function only.
Solution:
Post the above code either in function or constructor by doing changes according to your requirements.
The following code
must be inside a method. Not directly in the class. Classes can contain field and method declarations, but not arbitrary code.