I am having problems running my Dog.class and DogDemo.java files in VS Code. I typed it exactly as written in a Java book. I am coming up with the error:
Dog cannot be resolved to a type
at DogDemo.main(DogDemo.java:7)
I also have tried cleaning the java workspace, but it doesn't work.
EDIT: I have fixed the problem by changing the filename from Dog.class to Dog.java. For some reason, I thought that my book told me to use a.class file.
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.");
}
}
In your Dog-Class you forgot the type for the age variable (probably an integer), so correct it would be:
public class Dog
{
public String name;
public String breed;
public int age = 0;
And in your DogDemo-class you've got a Typo in the line:
System.out.println(scooby.name + " is a " + scooby.breed +
".");``
The " ' " after the semicolon should be removed to:
System.out.println(scooby.name + " is a " + scooby.breed + ".");
Then it works just fine for me:) Keep on coding!
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.");
}
}
The changes I made:
age
in Dog's propertyplease also make sure your classes are in the same package or import it into your class if they are not.
EDIT:
I think other people also had the same issues as you are having you can find it here
And also you can follow the steps here , this documentation provided by VS code. You can see which steps are missing.
you forgot to state the type of your variable age
public age = 0;
should become
public int age = 0;
In addition on DogDemo.java lines 17-18 you have
System.out.println(scooby.name + " is a " + scooby.breed +
".");`
you have a backtick `, which isn't valid and should be removed to become
System.out.println(scooby.name + " is a " + scooby.breed +
".");
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.