Java - Использование методов Accessor и Mutator

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

Вопрос в том:

Создайте класс с именем IDCard, который содержит имя человека, идентификационный номер и имя файла, содержащего фотогрфу человека. Напишите методы доступа и мутатора для каждого из этих полей. Добавьте следующие два перегруженных конструктора в класс:

public IDCard () public IDCard (String n, int ID, String filename)

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

Я переписал это до сих пор:

public class IDCard {
String Name, FileName;
int ID;

public static void main(String[] args) {

}

public IDCard()
{
    this.Name = getName();
    this.FileName = getFileName();
    this.ID = getID();
}

public IDCard(String n, int ID, String filename)
{

}

public String getName()
{
    return "Jack Smith";
}

public String getFileName()
{
    return "Jack.jpg";
}

public int getID()
{

        return 555;
    }
}

2 ответа

Решение

Давайте рассмотрим основы: "Accessor" и "Mutator" - это просто причудливые имена для геттера и сеттера. Получатель "Accessor" возвращает переменную класса или его значение. Сеттер "Mutator" устанавливает указатель на переменную класса или ее значение.

Итак, сначала вам нужно установить класс с некоторыми переменными для получения / установки:

public class IDCard
{
    private String mName;
    private String mFileName;
    private int mID;

}

Но нет! Если вы создадите экземпляр этого класса, значения по умолчанию для этих переменных будут бессмысленными. Кстати, "экземпляр" - это модное слово для выполнения:

IDCard test = new IDCard();

Итак - давайте установим конструктор по умолчанию, это метод, который вызывается, когда вы "создаете экземпляр" класса.

public IDCard()
{
    mName = "";
    mFileName = "";
    mID = -1;
}

Но что, если мы знаем значения, которые хотим дать нашим переменным? Итак, давайте создадим другой конструктор, который принимает параметры:

public IDCard(String name, int ID, String filename)
{
    mName = name;
    mID = ID;
    mFileName = filename;
}

Вау - это мило. Но глупо. Потому что у нас нет способа доступа (= чтения) к значениям наших переменных. Итак, давайте добавим геттер, и пока мы на нем, добавим и сеттер:

public String getName()
{
    return mName;
}

public void setName( String name )
{
    mName = name;
}

Ницца. Теперь мы можем получить доступ mName, Добавьте остальные аксессоры и мутаторы, и теперь вы сертифицированный новичок на Java. Удачи.

Вы должны удалить static из ваших методов доступа - эти методы должны быть методами экземпляра и обращаться к переменным экземпляра

public class IDCard {
    public String name, fileName;
    public int id;

    public IDCard(final String name, final String fileName, final int id) {
        this.name = name;
        this.fileName = fileName
        this.id = id;
    }

    public String getName() {
        return name;
    }
}

Вы можете создать IDCard и используйте метод доступа вот так:

final IDCard card = new IDCard();
card.getName();

Каждый раз, когда вы звоните new новый экземпляр IDCard будет создан, и он будет иметь свои собственные копии 3 переменных.

Если вы используете static Ключевое слово, то эти переменные являются общими для каждого экземпляра IDCard,

Несколько вещей, которые нужно иметь в виду:

  1. не добавляйте бесполезные комментарии - они добавляют беспорядок в коде и ничего больше.
  2. соответствовать соглашениям об именах, использовать строчные буквы имен переменных - name не Name,
Другие вопросы по тегам