Java 为什么会出现错误:错误:<;标识符>;预计在第9行中,我是否缺少导入

Java 为什么会出现错误:错误:<;标识符>;预计在第9行中,我是否缺少导入,java,Java,下面是我的代码,我已经发表了一些评论来解释我面临的问题 我应该进口别的东西吗?我正在使用jGrasp编译器 import java.awt.*; import java.applet.*; import java.lang.*; /*this is just a test class to learn how to use substring. I was trying to use substring to play around with strings in this case m

下面是我的代码,我已经发表了一些评论来解释我面临的问题

我应该进口别的东西吗?我正在使用
jGrasp
编译器

import java.awt.*;
import java.applet.*;
import java.lang.*;
/*this is just a test class to learn how to use substring. I was trying to use substring 
   to play around with strings in this case my dogs name. I was doing exercises on codingbat.com
  and came across the substring method. 
*/
public class Donna extends Applet {

    String DogName = "Donna Peluda";       // declare the String variable DogName
    String FirstDog = "";                  // declare FirstDog String variable blank
    FirstDog = DogName.substring( 0, 2);   // I get "Donna.java:9: error: <identifier> expected" 
    // if I comment out line 9 it prints "Donna Peluda" ok
    // Ive tried examples from the web and get the same error and spent 2 evenings on this so 

    public void paint(Graphics d) {
        d.drawString(DogName + FirstDog ,25, 25);//print the result to the applet
    }
}
import java.awt.*;
导入java.applet.*;
导入java.lang.*;
/*这只是一个学习如何使用子字符串的测试类。我试图使用子字符串
在这种情况下,用琴弦演奏我的狗的名字。我在codingbat.com上做练习
遇到了子串方法。
*/
公共类Donna扩展Applet{
String DogName=“Donna Peluda”;//声明字符串变量DogName
String FirstDog=”“;//将FirstDog字符串变量声明为空
FirstDog=DogName.substring(0,2);//我得到“Donna.java:9:error:expected”
//如果我注释掉第9行,它会打印“Donna Peluda”好吗
//我试过网络上的例子,也遇到了同样的错误,为此我花了两个晚上
公共空间涂料(图d){
d、 drawString(DogName+FirstDog,25,25);//将结果打印到小程序
}
}
试试这个:

String DogName = "Donna Peluda";
String FirstDog = getFirst();

public String getFirst()
{
    return DogName.substring( 0, 2);
}
试试这个:

String DogName = "Donna Peluda";
String FirstDog = getFirst();

public String getFirst()
{
    return DogName.substring( 0, 2);
}

那不是分配的正确位置。 如果你真的想这样做,试试这个

public class Donna extends Applet
{
    String dogName = "Donna Peluda";
    String FirstDog = "";
    {
        FirstDog = DogName.substring(0, 2);
    }

    .
    .
    .

那不是分配的正确位置。 如果你真的想这样做,试试这个

public class Donna extends Applet
{
    String dogName = "Donna Peluda";
    String FirstDog = "";
    {
        FirstDog = DogName.substring(0, 2);
    }

    .
    .
    .
因为jvm在初始化Donna时无法确保这三个声明的调用顺序。 但是
{}
可以在类成员赋值后调用,因此:

String DogName = "Donna Peluda";
String FirstDog = "";
{             
    FirstDog = DogName.substring(0, 2);
}
因为jvm在初始化Donna时无法确保这三个声明的调用顺序。 但是
{}
可以在类成员赋值后调用,因此:

String DogName = "Donna Peluda";
String FirstDog = "";
{             
    FirstDog = DogName.substring(0, 2);
}
类主体(第一个打开括号和最后一个关闭括号之间的所有内容)仅允许包含以下构件:

class MyClass extends MySuperClass implements YourInterface {
    // field, constructor, and
    // method declarations
}
线路

FirstDog = DogName.substring( 0, 2);
字段声明部分中不允许使用。您可以将该行移到构造函数中。或者直接初始化字段:

String FirstDog = DogName.substring( 0, 2);
另请参见以获取详细参考。

类主体(第一个打开括号和最后一个关闭括号之间的所有内容)仅允许包含以下构件:

class MyClass extends MySuperClass implements YourInterface {
    // field, constructor, and
    // method declarations
}
线路

FirstDog = DogName.substring( 0, 2);
字段声明部分中不允许使用。您可以将该行移到构造函数中。或者直接初始化字段:

String FirstDog = DogName.substring( 0, 2);

另请参见以获取详细参考。

非常确定
public
不是有效的Java访问修饰符。如果类成员的声明不引用该类成员,则可以调用实例方法。试试看:String str1=getStr();公共字符串getStr(){return this.str;}非常确定
pubic
不是有效的Java访问修饰符。如果类成员的声明不引用该类成员,则可以调用实例方法。试试看:String str1=getStr();公共字符串getStr(){返回this.str;}