На нестатический метод нельзя ссылаться из статического контекста

#methods #static #scope #instance

#методы #статический #область видимости #экземпляр

Вопрос:

Я пытаюсь вызвать метод из другого класса, и из того, что я собрал, метод, который я пытаюсь вызвать, является методом экземпляра. Я понял, что это означает, что он использует переменные экземпляра объекта. Есть ли простой способ вызвать этот метод?

Это основной метод,

 public void main()
{
    Test.testPetOwner();
}
 

И это метод, который я пытаюсь вызвать в классе с именем «Test»

 public void testPetOwner()
{
    String petName;
    String species;
    String hairCondition;
    String posture;

    testCompetitor();

    PetOwner petOwner1 = new PetOwner();

    System.out.println("What is the pet's name?");
    petName = Genio.getString();
    petOwner1.setPetName(petName);

    System.out.println("What is the species of the pet?");
    species = Genio.getString();
    petOwner1.setSpecies(species);

    System.out.println("What is the hair condition of the pet?");
    hairCondition = Genio.getString();
    petOwner1.setHairCondition(hairCondition);

    System.out.println("How is the pet's posture?");
    posture = Genio.getString();
    petOwner1.setPosture(posture);
}
 

Ответ №1:

 public void main()
{
    Test t = new Test();
    t.testPetOwner();
}
 

Комментарии:

1. Большое спасибо! Это всегда кажется очевидным, когда вы видите ответ!

Ответ №2:

Если мы попытаемся получить доступ к методу экземпляра из статического контекста, у компилятора теперь есть способ угадать, на какой метод экземпляра (переменную для какого объекта) вы тоже ссылаетесь. Хотя вы всегда можете получить к нему доступ, используя ссылку на объект.