Невозможно преобразовать в тип в VS Code [Java] - PullRequest
0 голосов
/ 12 июля 2020

У меня проблемы с запуском моих файлов Dog.class и DogDemo. java в VS Code. Я набрал именно так, как написано в книге Java. Я придумываю ошибку:

Dog не может быть преобразован в тип

на DogDemo.main (DogDemo. java: 7)

Я также пробовал очистка рабочего пространства java, но это не работает.

EDIT: Я исправил проблему, изменив имя файла с Dog.class на Dog. java. По какой-то причине я подумал, что в моей книге сказано использовать файл .class.

Dog.class



public class Dog
{
    public String name;
    public String breed;
    public age = 0;
    

    public void writeOutput()
    {
        System.out.println("Name " + name);
        System.out.println("Breed: " + breed);
        System.out.println("Age in calendar years" + age);
        System.out.println("Age in human years" + getAgeInHumanYears());
        System.out.println();
    }

    public int getAgeInHumanYears()
    {
        int humanAge = 0;

        if (age <= 2) 
        {
            humanAge = age * 11;
        }

        else
        {
            humanAge = 22 + ((age-2) * 5);
        }

        return humanAge;
    }
}

DogDemo. java



public class DogDemo 
{
    public static void main(String[] args) 
    {
        Dog kumo = new Dog();

        kumo.name = "kumo";
        kumo.age = 42;
        kumo.breed = "Corgi";
        kumo.writeOutput();

        Dog scooby = new Dog();
        scooby.name = "Scooby";
        scooby.age = 9;
        scooby.breed = "Great Dane";
        System.out.println(scooby.name + " is a " + scooby.breed +
        ".");`
        System.out.print("He is " + scooby.age + " years old, or ");

        int humanYears = scooby.getAgeInHumanYears();
        System.out.println(humanYears + " in human years.");
    }
}

Ответы [ 3 ]

1 голос
/ 13 июля 2020

Dog

class Dog {
    String name;
    String breed;
    int age;

    void writeOutput()
    {
        System.out.println("Name " + name);
        System.out.println("Breed: " + breed);
        System.out.println("Age in calendar years" + age);
        System.out.println("Age in human years" + getAgeInHumanYears());
        System.out.println();
    }

    int getAgeInHumanYears()
    {
        int humanAge = 0;

        if (age <= 2)
        {
            humanAge = age * 11;
        }

        else
        {
            humanAge = 22 + ((age-2) * 5);
        }

        return humanAge;
    }
}

DogDemo

public class DogDemo {

    public static void main(String[] args) {
        Dog kumo = new Dog();

        kumo.name = "kumo";
        kumo.age = 42;
        kumo.breed = "Corgi";
        kumo.writeOutput();

        Dog scooby = new Dog();
        scooby.name = "Scooby";
        scooby.age = 9;
        scooby.breed = "Great Dane";
        System.out.println(scooby.name + " is a " + scooby.breed + ".");
        System.out.print("He is " + scooby.age + " years old, or ");

        int humanYears = scooby.getAgeInHumanYears();
        System.out.println(humanYears + " in human years.");
    }
}

Внесенные мной изменения:

  1. удалено ключевое слово publi c из вашего класса данных Dog
  2. вы пропустили `в своей основной функции, где вы печатаете имя + порода
  3. добавьте тип int к age в свойстве Dog

пожалуйста, также убедитесь, что ваш классы находятся в одном пакете или импортируйте его в свой класс, если это не так.

EDIT:

Я думаю, что у других людей также были те же проблемы, что и у вас вы можете найти его здесь

А также вы можете выполнить шаги здесь , эта документация предоставлена ​​кодом VS. Вы можете увидеть, какие шаги отсутствуют.

1 голос
/ 13 июля 2020

В своем классе Dog вы забыли тип переменной возраста (вероятно, целое число), поэтому правильным будет:

public class Dog
{
    public String name;
    public String breed;
    public int age = 0;

А в вашем классе DogDemo у вас есть опечатка в строка:

System.out.println(scooby.name + " is a " + scooby.breed +
    ".");``

"'" после точки с запятой следует удалить на:

System.out.println(scooby.name + " is a " + scooby.breed + ".");

Тогда это отлично работает для меня :) Продолжайте кодировать!

0 голосов
/ 13 июля 2020

вы забыли указать тип вашей переменной age

    public age = 0;

должно стать

    public int age = 0;

Дополнительно на DogDemo. java строки 17-18 у вас

        System.out.println(scooby.name + " is a " + scooby.breed +
        ".");`

у вас есть обратная кавычка `, которая недействительна и должна быть удалена, чтобы стать

        System.out.println(scooby.name + " is a " + scooby.breed +
        ".");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...