Я пытаюсь создать класс на Java с помощью BlueJ. Мой класс называется Automobile. Моя цель - использовать мой метод Constructor для создания автомобилей с переменными: год, цвет, бренд, количество дверей, количество километров, если оно автоматическое (логическое), если оно продано (булево), описание и идентификационный номер. Все переменные имеют заданное значение по умолчанию, минимальное и максимально допустимое значение.Getters, Setters and Constructors в Java - Создание автомобиля и его хранение
Мне нужно использовать getVariablename и setVariablename для моих методов. Мои переменные цвета и бренда являются int, и я сделал методы для извлечения их экземпляров String в таблице в моем классе.
Моя проблема заключается в том, что я не понимаю принцип установки моей переменной одним методом и получения ее в другой (при условии, что это принятое значение). Кроме того, как только у меня есть метод Setter и Getter, что мне нужно записать при создании моего метода Constructor?
До сих пор, у меня есть это:
public class Automobile {
private static final String[] COLORS = { "Other", "Noir", "Blanc", "Bleu Nuit", "Bleu Clair", "Vert Pomme", "Vert Bouteille", "Taupe", "Argent", "Sable"};
private static final String[] BRANDS = { "Autre", "Mazda", "Toyota", "Ford", "GM", "Hyunday", "BMW", "SAAB", "Honda"};
public static final int COLOR_DEF = 8;
public static final int COLOR_MIN = 0;
public static final int COLOR_MAX = COULEURS.length - 1;
public static final int BRAND_DEF = 4;
public static final int BRAND_MIN = 0;
public static final int BRAND_MAX = MARQUES.length - 1;
public static final double KILO_DEFAULT = 55000;
public static final double KILO_MIN = 15000;
public static final double KILO_MAX = 140000;
public static final int TWO_DOORS = 2;
public static final int FOUR_DOORS = 4;
public static final int DOORS_DEFAULT = FOUR_DOORS;
public static final boolean AUTO_DEF = true;
public static final int YEAR_MIN = 1997;
public static final int YEAR_MAX = 2016;
public static final int YEAR_DEFAUT = 2007;
public static final String COMM_DEFAUT = "";
public static String color (int cou) {
String chainecolor = "";
if (cou >= COLOR_MIN && cou <= COLOR_MAX) {
chainecolor = COLORS[cou];
}
return chainecolor;
} //This method is to return the String value of a color from its int value using the COLORS table. If invalid it returns an empty chain.
public static String brand (int br) {
String chainebrand = "";
if (ma >= BRAND_MIN && ma <= BRAND_MAX) {
chainebrand = BRANDS[br];
}
return chainebrand;
} //same thing for the brand
public Automobile (int brand, int year, int color, boolean automatic, double kilometers,int nbrDoors, String description, boolean sold){
//To be completed
}
//here i'm supposed to create getters that return int values for everything but automatic, sold and description
public void setYear (int year) {
if (year >= YEAR_MIN && YEAR <= YEAR_MAX) {
year = year;
}
} // supposed to be the setter for my year, as long as it's within the accepted values
public void setMarque (int brand){
if (brand >= BRAND_MIN && brand <= BRAND_MAX) {
brand = brand;
}
} //same, for the brand
public void setColor (int color) {
if (color >= COLOR_MIN && color <= COLOR_MAX){
color = color;
}
}// same for the color
public void setNbrDoors (int p) {
if (p == TWO_DOORS || p == FOUR_DOORS){
p = p;
}
} // same for the door. I am forced to use (int p) as the variable for this method, which confuses me as to how I will refer to it from nbrDoors up in the Automobile constructor method
} // Automobile
Так что мои трудности лежат в:
ли примеры сеттеров, которые я сделал действительно для этой цели? Я не понимаю, что нужно для p = p или color = color ...
Как создать метод геттера, который сможет подобрать переменную p из setNbrDoors, вернуть ее значение и получить ее использовать для nbrDoors в конструкторе автомобилей?
Что я должен написать в методе «Конструктор», например, он сможет получить свои значения от геттеров?
Это все потому, что вторая часть мне придется создать небольшой код, чтобы попросить пользователя ввести все значения переменных, а затем создать таблицу запасете автомобилей создает пользователь.
P.S .: работа изначально на французском языке, поэтому я перевел имена переменных и методов наилучшим образом, чтобы я мог лучше понять. Кроме того, имена переменных, методы и т. Д. Все наложены, я FORCED, чтобы сделать класс именно так.
РЕДАКТИРОВАТЬ: Как таковое, также применяется статичность для маркировки и преобразования цвета. Эти 2 метода предназначены исключительно для возврата строки символа из значения int. они не используются в конструкторе. Наконец, исключения будут обрабатываться во второй части работы, используя отдельный цикл проверки. Класс Automobile действительно используется исключительно для обработки создания объекта «автомобиль».
так что я должен использовать это. во всех сеттерах. вы могли бы привести пример того, как будет выглядеть Getter для этой переменной? Также накладывается статичность для преобразования бренда и цвета. Эти 2 метода предназначены исключительно для возврата строки символа из значения int. они не используются в конструкторе. Наконец, исключения будут обрабатываться во второй части работы, используя отдельный цикл проверки. Класс Automobile действительно используется исключительно для создания автомобиля. (Я добавлю это на свой пост) –
Обновленный выше код с геттером – developer
javaguy, так как вы так удивительны, у меня есть дополнительный вопрос для вас. Я должен создать переменную, которая будет идентификационным номером для каждого автомобиля, который я делаю, уникальным и начинающимся с 1 (так что первый автомобиль будет 1, второй будет 2 и т. Д.). Впоследствии у меня будет метод клонирования любого из автомобилей, которые я создал, поэтому создайте новый автомобиль со всеми теми же атрибутами, ЗА ИСКЛЮЧЕНИЕМ проданных и идентификационных переменных. для проданного, я могу просто по умолчанию вернуть его в false, но как бы мне переписать значения всех моих переменных при генерации нового идентификационного номера каждый раз? Спасибо –