Почему я не могу найти ошибку в моей программе при компиляции. Нужна помощь - PullRequest
0 голосов
/ 28 апреля 2018

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

Для этой программы необходимо создать 4 метода:

добавить новых питомцев получить домашнее животное принято показать домашних животных по типу показать домашних животных, доступных для принятия Класс объекта: Pets.java

import java.util.*;

public class Pets {
    public static void main(String[] args){
        private double age; // age of the animal (e.g. for 6 months the age would be .5)
        private String petName; // name of the animal
        private String aType; // the type of the pet (e.g. "bird", "dog", "cat", "fish", etc)
        private int collarID; // id number for the pets
        private boolean isAdopted = false; // truth of if the pet has been adopted or not
        private String newOwner;
        private Date adoptionDate;

        public double getAge() {
            return age;
        }

        public void setAge(double age) {
            this.age = age;
        }

        public String getPetName() {
            return petName; 
        }

        public void setPetName(String petName) {
            this.petName = petName;
        }

        public String getaType() {
            return aType;
        }

        public void setaType(String aType) {
            this.aType = aType;
        }

        public int getCollarId() {
            return collarID;
        }

        public void setCollarId(int collarId) {
            this.collarID = collarId;
        }

        public boolean isAdoptated() {
            return isAdopted;
        }

        public void setAdoptated(boolean isAdoptated) {
            this.isAdopted = isAdoptated;
        }

        public Date getAdoptionDate() {
            return adoptionDate;
        }

        public void setAdoptionDate(Date adoptionDate) {
            this.adoptionDate = adoptionDate;
        }

        @Override

        public String toString() {
            return "Pets [age=" + age + ", petName=" + petName + ", aType=" + aType + ", collarId=" + collarID

            + ", isAdoptated=" + isAdopted + ", adoptionDate=" + adoptionDate + "]";

        }
    }
}

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Этот код не компилируется по двум основным причинам:

  • Вы указываете модификаторы доступа для переменных внутри метода (в данном случае main ), что запрещено;
  • Вы пишете методы ( например getAge ) внутри другого метода ( main ) и пытаетесь вернуть переменную ( например age ), который находится вне этой области, фактически переменная age не известна внутри метода getAge, поскольку она объявлена ​​в методе main.

Вы должны переместить объявление переменной на уровень класса, а затем разделить все методы, используя эти переменные. Я дам вам эскиз, а не полное решение:

import java.util.*;

public class Pets {
    /* Insert all variable declarations here */
    private double age;

    /* Constructor if you need it */
    public Pets(/* parameters you think you need */) {
        // Set attributes when you declare a new Pets()
    }

    /* Insert all methods you need here */
    public double getAge() {
        return this.age;
    }

Положение основного метода - как я понял из вашего описания - должно быть размещено вне этого класса, в другом классе, где все приложение начнет работать. Класс Pet должен использоваться только для всего, что касается домашних животных (четыре метода, которые вам нужно реализовать, и все методы получения / установки для получения переменных частного класса).

0 голосов
/ 28 апреля 2018

Вы случайно включили все - частные поля и открытые методы - в свой основной метод. Это не имеет смысла. Все, что есть в вашем main, переместите его наружу, прямо под линией public class Pets {. Это должно исправить вашу ошибку компилятора.

0 голосов
/ 28 апреля 2018

Вы должны определять поля данных и методы внутри класса, но не внутри метода main (). Метод main () - это точка входа вашего java-приложения, которую можно использовать для создания экземпляра вашего класса Pets. e.g.:

public static void main(String[] args) {
    Pets pet = new Pets();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...