当前位置: 首页 > 知识库问答 >
问题:

标记“***”上出现语法错误,此标记后面应为AnnotationName[已关闭]

呼延凌
2023-03-14

我本打算在我的代码下设置狗的高度,但它用上面的错误标记了它。是否有任何修复方法,是否缺少任何{}im?

就像代码差不多完成了一样,我检查了所有代码,它工作了,并尝试添加狗的高度,但它抛出了语法错误

public class Dog
{
private int age;
private String name;
private String Color;
private int Height;
public Dog(int age,String name,String Color, int Height)
{
   this.age= age;
   this.name= name;
   this.Color = Color;
   this. Altura = Altura;
}
public String setDogName(String Name)
{
   this.name = name;
   return name;
}
public String getDogName()
{
   return name;
}
public String setDogColor(String Color)
{
   this.Color = Color;
   return Color;

}
{
   public int setDogHeight()
}
public int setDogAge(int age)
{
   this.age = age;
   return age;
}

public int getDogAge()
{
   return age;
}

public int computeDogAge()
{
   this.age=age*7;
   return age;
}
public String toString()
{
   String dogsname= "Dog's name:";
   String dogsage= "Dog's age:";
   String dogcolor= "Dog's Color:";
   return dogsname + name +"\t"+dogsage+age+"\t"+dogcolor+Color;
}

public static void main (String[] args)
{
   Dog dog1 = new Dog (1,"sasha","red");
   Dog dog2 = new Dog (7,"karmine","green");
   Dog dog3 = new Dog (6,"dakota","blue");

   dog1.setDogAge(9);
   System.out.println((dog1));

   dog2.setDogName("shazam");
   System.out.println(dog2);

   System.out.println(dog3);

   System.out.println();
   System.out.println("Dog's age in human years:");
   System.out.println(dog1.computeDogAge());
   System.out.println(dog2.computeDogAge());
   System.out.println(dog3.computeDogAge());
   
   if(dog1.age >dog2.age); {
       System.out.println( "sasha is older than karmine");

   }

   
}
}

错误出现在第28到31行,代码如下

}
{
    public int setDogHeight()
}

共有1个答案

步博涉
2023-03-14

有一些较小的类型错误:

  • 你忘了把altura改成高度
  • 方法声明的括号后面有一个冒号
  • main()中创建的Dog不遵循您的构造函数
  • setdoghight()的花括号放在方法声明的周围
  • setDogName()中的属性name已大写

以下是更正后的代码:

package com.company;

public class Dog {
    private int age;
    private String name;
    private String color;
    private int height;

    public Dog(int age, String name, String color, int height) {
        this.age = age;
        this.name = name;
        this.color = color;
        this.height = height;
    }

    public void setDogName(String name) {
        this.name = name;
    }

    public String getDogName() {
        return name;
    }

    public void setDogColor(String color) {
        this.color = color;
    }

    public void setDogHeight(int height) {
        this.height = height;
    }

    public void setDogAge(int age) {
        this.age = age;
    }

    public int getDogAge() {
        return age;
    }

    public int computeDogAge() {
        this.age = age * 7;
        return age;
    }

    public String toString() {
        String dogName = "Dog's name: ";
        String dogAge = "Dog's age: ";
        String dogColor = "Dog's Color: ";
        return dogName + name + "\t" + dogAge + age + "\t" + dogColor + color;
    }

    public static void main(String[] args) {
        Dog dog1 = new Dog(1, "sasha", "red", 1);
        Dog dog2 = new Dog(7, "karmine", "green", 1);
        Dog dog3 = new Dog(6, "dakota", "blue", 1);

        dog1.setDogAge(9);
        System.out.println((dog1));

        dog2.setDogName("shazam");
        System.out.println(dog2);

        System.out.println(dog3);

        System.out.println();
        System.out.println("Dog's age in human years:");
        System.out.println(dog1.computeDogAge());
        System.out.println(dog2.computeDogAge());
        System.out.println(dog3.computeDogAge());

        if (dog1.age > dog2.age) {
            System.out.println(dog1.name + " is older than " + dog2.name);
        }
    }
}

避免这些问题的一些建议:

>

遵守代码约定,例如使用小写字符作为变量和方法名。

不要存储任何信息两次。在main()中的if-语句中,您打印出“萨沙比卡敏年长”。但是当你创建它们的时候,它们的名字已经被定义了。现在,即使您更改了名称,程序也不会打印“shazam”而不是“karmine”。改为访问属性(请参见代码)。

不要更改getter中的代码,比如computeDogAge()。如果你第二次调用这个方法,它会再次乘以年龄。相反,您可以直接返回age*7(参见代码)。

如果你格式化你的代码,你就不会再有像这样的编译错误了。使用像IntelliJ这样的IDE,使用StrgAltL格式化代码。

 类似资料:
  • 我对编码有点陌生,不明白为什么会出现这种情况。谁来帮帮我。 导入java.util.scanner; 类calculateMortgageA{public static void main(String[]args){ } 公共静态double calcmortgage(double salaryOne,double salaryTwo } }

  • 我正在使用GitHub提供的antlr4语法分析器和词法分析器来解析Python3中的PHP。 当我直接使用这些语法时,我的PoC代码工作: antlr试验。py 这给出了输出 当我使用以下PHP时。g4语法,我犯了很多错误: 在对pythons导入交换评论之后,我得到了这个错误 然而,当我在语法上运行antlr4工具时,我没有出错。我在这里被难住了——是什么导致了这个问题?

  • -我在if/else部分或下面的代码中遇到了“标记“boolean”语法错误、“表达式无效”错误。我在所有“else/if”行中都出现了3次此错误。 -我遇到的另一个错误是最后一个“else”,我必须插入一个“在没有解决任何问题的声明之后。 更新: 编辑-仅剩下最后一行中的错误,即。 赋值的左侧必须是变量-语法错误,插入“;”完成陈述 修改代码:

  • 当我运行这个命令时: 我收到以下错误: ~\appdata\local\continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in read(self,nrows)1746 def read(self,nrows=none):1747 try:->1748 data=self._reader.read(nrows)1749除了stop

  • 我在我的ReactJS应用程序上得到一个意外的令牌。但是我相信语法是正确的。 ./src/组件/身份验证/索引中的错误.js模块生成失败: 语法错误: 意外的标记 (11:11) 我错过了什么? 这是我的webpack.config.js 。巴伯尔克

  • 问题内容: 当我将其包含在void main中时,出现语法错误“无法解析硒” 当我将其放在我的void main之外和班级内部时,出现了错误: 请帮助我解决此问题。 问题答案: 古代的粗 硒 精制有一种方法, 但是很久以前不赞成使用这种方法。用于控制 自动化脚本 每个步骤的速度。因为 自动测试 的目的是减少 验证时间, 所以设置脚本执行的每一行的速度是矛盾的。因此被弃用了。 如果要等待某个条件,则