Java 为什么在代码未放入主块时抛出错误

Java 为什么在代码未放入主块时抛出错误,java,Java,我正在实现一个堆栈 这是我的代码 包装数据结构 public class Stack { private int top; private int max; private int[] data; Stack(int s) { max=s; data=new int[s]; top=-1; } public void push(int a) { data[++top]=a; } public int

我正在实现一个堆栈 这是我的代码 包装数据结构

public class Stack
 { 
  private int top;
  private int max;
  private int[] data;
  Stack(int s)
   {
     max=s;
     data=new int[s];
     top=-1;
   }
  public void push(int a)
    {
     data[++top]=a;
    }
  public int pop()
    {
     return data[top--];
    }
  public int peek()
   {
    return data[top];     
   }
  public boolean isEmpty()
   { 
    if (top==-1)
    return true;
    else
    return false;
   }
 }
我在另一节课上用它

package data_structure; 
class StackImplementation 
 {

    Stack abc =new Stack(5);
    boolean value = abc.isEmpty();
    if(value==true)
      {
         System.out.println("Yes it's empty");
      }
    abc.push(22);
    abc.push(23);
  }
堆栈实现正在抛出编译错误,如if(value==true)处类型的非法开始
标识符应为(value==true),如果将整个代码放在main方法下,则会删除更多错误

此错误的原因很简单,因为您没有将代码包装到方法中

if(value==true)
此时,编译器不希望出现if语句

class StackImplementation {
  public void foo () {
    Stack abc =new Stack(5);
    boolean value = abc.isEmpty();
    if(value)
      {
         System.out.println("Yes it's empty");
      }
    abc.push(22);
    abc.push(23);
 }
}

请注意,您还可以跳过条件中的
==true
部分,因为您已经有了
布尔值

此错误的原因很简单,因为您没有用方法包装代码

if(value==true)
此时,编译器不希望出现if语句

class StackImplementation {
  public void foo () {
    Stack abc =new Stack(5);
    boolean value = abc.isEmpty();
    if(value)
      {
         System.out.println("Yes it's empty");
      }
    abc.push(22);
    abc.push(23);
 }
}

请注意,您还可以跳过条件中的
==true
部分,因为您已经有了
布尔值

此错误的原因很简单,因为您没有用方法包装代码

if(value==true)
此时,编译器不希望出现if语句

class StackImplementation {
  public void foo () {
    Stack abc =new Stack(5);
    boolean value = abc.isEmpty();
    if(value)
      {
         System.out.println("Yes it's empty");
      }
    abc.push(22);
    abc.push(23);
 }
}

请注意,您还可以跳过条件中的
==true
部分,因为您已经有了
布尔值

此错误的原因很简单,因为您没有用方法包装代码

if(value==true)
此时,编译器不希望出现if语句

class StackImplementation {
  public void foo () {
    Stack abc =new Stack(5);
    boolean value = abc.isEmpty();
    if(value)
      {
         System.out.println("Yes it's empty");
      }
    abc.push(22);
    abc.push(23);
 }
}

请注意,您还可以跳过条件中的
==true
部分,因为您已经有了
布尔值
if
语句和
abc.push(22);abc.push(23)必须在方法中。如果您不想创建该方法,请使用如下块

class StackImplementation 
 {

    Stack abc =new Stack(5);
     boolean value = abc.isEmpty();
     {
         if(value==true)
         {
             System.out.println("Yes it's empty");
         }
         abc.push(22);
         abc.push(23);
     }

  }

你的
if
语句和
abc.push(22);abc.push(23)必须在方法中。如果您不想创建该方法,请使用如下块

class StackImplementation 
 {

    Stack abc =new Stack(5);
     boolean value = abc.isEmpty();
     {
         if(value==true)
         {
             System.out.println("Yes it's empty");
         }
         abc.push(22);
         abc.push(23);
     }

  }

你的
if
语句和
abc.push(22);abc.push(23)必须在方法中。如果您不想创建该方法,请使用如下块

class StackImplementation 
 {

    Stack abc =new Stack(5);
     boolean value = abc.isEmpty();
     {
         if(value==true)
         {
             System.out.println("Yes it's empty");
         }
         abc.push(22);
         abc.push(23);
     }

  }

你的
if
语句和
abc.push(22);abc.push(23)必须在方法中。如果您不想创建该方法,请使用如下块

class StackImplementation 
 {

    Stack abc =new Stack(5);
     boolean value = abc.isEmpty();
     {
         if(value==true)
         {
             System.out.println("Yes it's empty");
         }
         abc.push(22);
         abc.push(23);
     }

  }

您的类缺少执行此代码的方法。您可以在类内声明甚至分配字段,但是如果您想执行代码,您必须在构造函数内或(最好)在方法/getter/settery内执行。您的类缺少执行此代码的方法。您可以在类内声明甚至分配字段,但是如果您想执行代码,您必须在构造函数内或(最好)在方法/getter/settery内执行。您的类缺少执行此代码的方法。您可以在类内声明甚至分配字段,但是如果您想执行代码,您必须在构造函数内或(最好)在方法/getter/settery内执行。您的类缺少执行此代码的方法。您可以在类中声明甚至分配字段,但是如果您想要执行代码,您必须在构造函数中或者(最好)在方法/getter/setter中执行