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
,
Несколько вещей, которые нужно иметь в виду:
- не добавляйте бесполезные комментарии - они добавляют беспорядок в коде и ничего больше.
- соответствовать соглашениям об именах, использовать строчные буквы имен переменных -
name
неName
,