Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 23

Основы Java - класс, методы setType(), getType(), toString(), работа с объектами

27.07.2016, 14:59. Показов 6267. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Начал изучать джаву на прошлой неделе. Посыпались домашние задания. Есть вопросы.
Задача создать класс Car со следующими полями:
• id,
• Марка,
• Модель,
• Год выпуска,
• Цвет,
• Цена,
• Регистрационный номер.
Определить конструкторы и методы setТип(), getТип(), toString().
Создать массив объектов.
Приложение при старте, выводит в консоли текстовое меню для выполнения
пользователем нижеперечисленных операций.
Вывести:
a) список марок автомобилей из созданного массива объектов;
b) список автомобилей, которые эксплуатируются больше n лет;
c) список автомобилей заданного года выпуска, цена которых больше
указанной.
Постройте структуру меню приложения таким образом, чтобы пользователь
мог последовательно вводить параметры поиска и получать результат. После
выполнения выбранной операции, на экран должен выводиться результат и
снова пользователю предлагается выполнить одну из операций до тех пор,
пока пользователь выполнить выход из приложения.

Готово почти все, кроме пункта 2, красивого вывода перегруженого ToString() и бага с id автомобилей, которые почему то начинаются с 10. Прилагаю код и проект, прошу помочь советом.
Использую Intelij IdeaU 64bit, код прилагаю

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
package com.company;
 
import java.util.Calendar;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        int choose=0;   // variable for menu
        int mYear;   // model year
        int mPrice;  // model price of car we are looking for
        Scanner in = new Scanner(System.in);    // our Scanner for switch
        // array of objects (creating and initializing)
        Car[] carlist = new Car[]{
                new Car(1, "BMW", 1994, "black", 2300, 869735),  // 1st car
                new Car(2, "AUDI", 2002, "yellow", 4000, 869736), // 2nd car
                new Car(3, "Volvo", 1999, "green", 3300, 869737), // etc...
                new Car(4, "TOYOTA", 2002, "purple", 5000, 869738),
                new Car(5, "Ferrari", 2005, "red", 10000, 869739),
                new Car(6, "Ford", 1967, "yellow", 8800, 869739),
                new Car(7, "Aston Martin", 2009, "black", 18000, 869740),
                new Car(8, "Lada", 2013, "white", 1800, 869741),
                new Car(9, "Dodge", 2009, "white", 6700, 869742),
                new Car(10, "Mitsubishi", 2008, "red", 3200, 869743),
                new Car(11, "Volkswagen", 2016, "grey", 9000, 869744),
                new Car(12, "Lexus", 2014, "blue", 11000, 869745),
                new Car(13, "Mercedes-Benz", 2016, "black", 22000, 869746),
                new Car(14, "Jaguar", 2015, "grey", 24000, 869747),
                new Car(15, "Lamborghini", 2016, "silver", 30000, 869748)
        };
 
        System.out.println("\t\t\tMenu");
        System.out.println("1. All cars");
        System.out.println("2. Cars that in use more then n years");
        System.out.println("3. Cars of some period price of which is more then");
        System.out.println("4. Exit");
        while (choose!=4) {
            choose = in.nextInt();
            switch (choose) {
                // show all the cars
                case 1:
                    System.out.println("id\tbrand\tyear\tcolor\tprice\tregister number");
                    for (int i = 0; i < carlist.length; i++) {
                        System.out.println(carlist[i].toString());
                    }
                    break;
                // list of all cars that in use more then n years
                case 2:
                    System.out.println("Enter the the period in years u are looking for");
                    mYear = in.nextInt();
                    for (int i = 0; i < carlist.length; i++) {
                        if (Calendar.YEAR - carlist[i].getYear() >= mYear) {
                            System.out.println(carlist[i].toString());
                        } else System.out.println("Nothing found");
                    }
                    break;
                //  list of cars of some model year with price more then
                case 3:
                    System.out.println("Enter the model year");
                    mYear=in.nextInt();
                    System.out.println("Enter the price");
                    mPrice = in.nextInt();
                    for (int i=0;i<carlist.length;i++){
                        if (carlist[i].getYear()==mYear && carlist[i].getPrice()>mPrice)
                            System.out.println(carlist[i].toString());
                        else System.out.println("No car found");
                    }
                    break;
                default:
                    break;
            }
        }
    }
}
 
 
package com.company;
 
/**
 * Created by Bohdan Yakymenko on 27.07.2016.
 * */
    public class Car {
        int id;
        String brand;
        int year;
        String color;
        int price;
        int registerNumber;
 
    //region  Constructor
    public Car(int id, String brand, int year, String color, int price, int registerNumber) {
        this.id = id;
        this.brand = brand;
        this.year = year;
        this.color = color;
        this.price = price;
        this.registerNumber = registerNumber;
    }
    //endregion
 
    //region GetSet
 
    public int getId() { return id; }
 
    public void setId(short id) {
        this.id = id;
    }
 
    public String getBrand() {
        return brand;
    }
 
    public void setBrand(String brand) {
        this.brand = brand;
    }
 
    public int getYear() {
        return year;
    }
 
    public void setYear(int year) {
        this.year = year;
    }
 
    public String getColor() {
        return color;
    }
 
    public void setColor(String color) {
        this.color = color;
    }
 
    public int getPrice() {
        return price;
    }
 
    public void setPrice(int price) {
        this.price = price;
    }
 
    public int getRegisterNumber() {
        return registerNumber;
    }
 
    public void setRegisterNumber(int registerNumber) {
        this.registerNumber = registerNumber;
    }
    //endregion
 
    //region toString
    @Override
    public String toString() {
        return  id + '\t'
                + brand + '\t' +
                + year + '\t'
                + color + '\t' +
                + price + '\t' +
                registerNumber;
    }
 
    //endregion
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.07.2016, 14:59
Ответы с готовыми решениями:

Основы Java. Работа с файлами
Вот такое вот зд Тема: Работа с файлами. Многопоточность. Сетевое взаимодействие. Введение в разработку серверных решений с ...

Основы работы с объектами
Задача на языке java 1. Написать класс, который содержит информацию о стране с такими атрибутами: название, столица, население,...

конструктор, деструктор и методы toString и EQ
Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели заданного объекта. Описание объекта и...

3
 Аватар для mocivan
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
28.07.2016, 18:41
на правильность не претендую, но функционал допилен )
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
package misc;
 
import java.util.*;
 
public class Main {
 
    public static void main(String[] args) {
        int choose = 0;   // variable for menu
        int mYear;   // model year
        int mPrice;  // model price of car we are looking for
        Scanner in = new Scanner(System.in);    // our Scanner for switch
        // array of objects (creating and initializing)
        Car[] carlist = new Car[]{
                new Car(1, "BMW", 1994, "black", 2300, 869735),  // 1st car
                new Car(2, "AUDI", 2002, "yellow", 4000, 869736), // 2nd car
                new Car(3, "Volvo", 1999, "green", 3300, 869737), // etc...
                new Car(4, "TOYOTA", 2002, "purple", 5000, 869738),
                new Car(5, "Ferrari", 2005, "red", 10000, 869739),
                new Car(6, "Ford", 1967, "yellow", 8800, 869739),
                new Car(7, "Aston Martin", 2009, "black", 18000, 869740),
                new Car(8, "Lada", 2013, "white", 1800, 869741),
                new Car(9, "Dodge", 2009, "white", 6700, 869742),
                new Car(10, "Mitsubishi", 2008, "red", 3200, 869743),
                new Car(11, "Volkswagen", 2016, "grey", 9000, 869744),
                new Car(12, "Lexus", 2014, "blue", 11000, 869745),
                new Car(13, "Mercedes-Benz", 2016, "black", 22000, 869746),
                new Car(14, "Jaguar", 2015, "grey", 24000, 869747),
                new Car(15, "Lamborghini", 2016, "silver", 30000, 869748)
        };
        List<Car> resultList = new ArrayList<>();
 
        do {
            showMenu();
 
            choose = in.nextInt();
            switch (choose) {
                // show all the cars
                case 1:
                    printCars(Arrays.asList(carlist));
                    break;
                // list of all cars that in use more then n years
                case 2:
                    System.out.println("Enter the number of years that the car is already operated");
                    mYear = in.nextInt();
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(new Date());
                    for (int i = 0; i < carlist.length; i++) {
                        if (calendar.get(Calendar.YEAR) - mYear >= carlist[i].getYear()) {
                            resultList.add(carlist[i]);
                        }
                    }
                    showResult(resultList);
                    break;
                //  list of cars of some model year with price more then
                case 3:
                    System.out.println("Enter the model year");
                    mYear = in.nextInt();
                    System.out.println("Enter the price");
                    mPrice = in.nextInt();
                    for (int i = 0; i < carlist.length; i++) {
                        if (carlist[i].getYear() == mYear && carlist[i].getPrice() > mPrice)
                            resultList.add(carlist[i]);
                    }
                    showResult(resultList);
                    break;
                default:
                    break;
            }
        } while (choose != 4);
    }
 
    private static void showMenu() {
        System.out.printf("%10s \n", "Menu");
        System.out.println("1. All cars");
        System.out.println("2. Cars that in use more then n years");
        System.out.println("3. Cars of some period price of which is more then");
        System.out.println("4. Exit");
    }
 
    private static void showResult(List<Car> resultList) {
        if (resultList.isEmpty()) {
            System.out.println("Nothing found");
        } else {
            printCars(resultList);
            resultList.clear();
        }
    }
 
    private static void printCars(List<Car> carlist) {
        System.out.printf("%-5s%-20s%-10s%-10s%-10s%-20s\n", "id", "brand", "year", "color", "price", "register number");
        for (int i = 0; i < carlist.size(); i++) {
            System.out.printf("%-5s", String.valueOf(carlist.get(i).getId()));
            System.out.printf("%-20s", String.valueOf(carlist.get(i).getBrand()));
            System.out.printf("%-10s", String.valueOf(carlist.get(i).getYear()));
            System.out.printf("%-10s", String.valueOf(carlist.get(i).getColor()));
            System.out.printf("%-10s", String.valueOf(carlist.get(i).getPrice()));
            System.out.printf("%-20s", String.valueOf(carlist.get(i).getRegisterNumber()));
            System.out.println();
        }
    }
}
 
class Car {
    private int id;
    private String brand;
    private int year;
    private String color;
    private int price;
    private int registerNumber;
 
    //region  Constructor
    public Car(int id, String brand, int year, String color, int price, int registerNumber) {
        this.id = id;
        this.brand = brand;
        this.year = year;
        this.color = color;
        this.price = price;
        this.registerNumber = registerNumber;
    }
    //endregion
 
    //region GetSet
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getBrand() {
        return brand;
    }
 
    public void setBrand(String brand) {
        this.brand = brand;
    }
 
    public int getYear() {
        return year;
    }
 
    public void setYear(int year) {
        this.year = year;
    }
 
    public String getColor() {
        return color;
    }
 
    public void setColor(String color) {
        this.color = color;
    }
 
    public int getPrice() {
        return price;
    }
 
    public void setPrice(int price) {
        this.price = price;
    }
 
    public int getRegisterNumber() {
        return registerNumber;
    }
 
    public void setRegisterNumber(int registerNumber) {
        this.registerNumber = registerNumber;
    }
    //endregion
 
    //region toString
    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Car{");
        sb.append("id=").append(id);
        sb.append(", brand='").append(brand).append('\'');
        sb.append(", year=").append(year);
        sb.append(", color='").append(color).append('\'');
        sb.append(", price=").append(price);
        sb.append(", registerNumber=").append(registerNumber);
        sb.append('}');
        return sb.toString();
    }
    //endregion
}
1
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 23
29.08.2016, 20:15  [ТС]
Благодарю! Отличная работа!
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
30.08.2016, 14:41
1. Case выглядит ужасно.
2. Вот это вот все тоже надо бы в отдельный класс.
Java
1
2
3
4
 for (int i = 0; i < carlist.length; i++) {
                        if (carlist[i].getYear() == mYear && carlist[i].getPrice() > mPrice)
                            resultList.add(carlist[i])
}
3. Ну и меню в отдельный класс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2016, 14:41
Помогаю со студенческими работами здесь

Зачем переопределять методы ToString(), GetHashCode(), Equals()
В голове не укладывается. Зачем это на практике нужно?

Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru