Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.01.2023
Сообщений: 9

Создание объектов класса и добавление для них полей через цикл

26.01.2023, 23:25. Показов 580. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть какой-то класс(например Салон) с полями String(модель) и Int(цена). Нужно сделать цикл который создаст столько объектов сколько впишем с клавиатуры И для этих объектов нужно вписать с той же клавиатуры значение полей. И можно еще создать скрипт который сохранит эти данный в список или в таблицу, и этот список или таблицу сохранит в текстовый файл.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2023, 23:25
Ответы с готовыми решениями:

Добавление объектов класса через форму
Здравствуйте, подскажите пожалуйста как это реализовать : Есть клас Band с Dictionary<Guid,Band> и форма AddBand, где есть кнопка...

Создание объектов класса через random
Есть строка кода kot.Add(new kot(r.Next(6) * 40,r.Next(6) * 40)); Как при создании этого объекта исключить выпадение конкретных чисел,...

Методы чтения и записи для полей данных объектов типа класса
Всем привет! Написала первый свой проект, получила на него рецензию: " Нет методов чтения и записи для полей данных объектов типа...

5
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
27.01.2023, 00:59
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
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;
 
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        var abc = Stream.generate(() -> new S(in.next(), in.nextInt())).limit(in.nextInt()).toArray(S[]::new);
        var file = new File("out.txt");
        try (var fw = new FileWriter(file)) {
            fw.write(Arrays.toString(abc));
            fw.flush();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}
 
class S {
    private final String s;
    private final int i;
 
 
    public S(String s, int i) {
        this.s = s;
        this.i = i;
    }
 
    @Override
    public String toString() {
        return "S{" +
                "s='" + s + '\'' +
                ", i=" + i +
                '}';
    }
}
1
2487 / 1151 / 709
Регистрация: 25.04.2016
Сообщений: 3,315
27.01.2023, 13:23
Лучший ответ Сообщение было отмечено nikita__ как решение

Решение

Цитата Сообщение от nikita__ Посмотреть сообщение
И можно еще создать скрипт
Какие однако запросы интересные... это костыль через костыль? Окей...
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
import java.util.Scanner;
 
class Salon {
    private String model;
    private int price;
 
    public Salon(String model, int price) {
        this.model = model;
        this.price = price;
    }
 
    @Override
    public String toString() {
        String s = "'" + model + "'";
        return String.format("| модель: %-16s  |  цена: %-6d |", s, price);
    }
}
 
class MyProg {
    public static void main(String[] args) {
        /* узнаем количество объектов */
        Scanner in = new Scanner(System.in);
        System.out.print("n = ");
        int n = in.nextInt();
        if (n < 1)
            return;
 
        /* создаем массив */
        Salon[] salon = new Salon[n];
 
        /* заполняем значениями */
        for (int i = 0; i < n; i++) {
            in.nextLine();
            System.out.printf("\nЛот %d:\nМодель?: ", i + 1);
            String model = in.nextLine();
 
            System.out.print("Цена?: ");
            int price = in.nextInt();
 
            salon[i] = new Salon(model, price);
        }
 
        /* выводим на экран */
        String line = "";
        int size = salon[0].toString().length();
        for (int i = 0; i < size; i++)
            line += (i < 1 || i == size - 1)? "+" : "-";
 
        System.out.println();
        System.err.println(line);
        for (int i = 0; i < n; i++) {
            System.err.println(salon[i]);
            System.err.println(line);
        }
    }
}
Bash
1
2
3
4
#!/bin/bash
 
CLASSNAME=$(echo $1 | sed 's/\..*//')
java $CLASSNAME 2> $2
использование:
./script.sh MyProg.class out.txt
0
0 / 0 / 0
Регистрация: 15.01.2023
Сообщений: 9
28.01.2023, 01:12  [ТС]
Супер класс, меня еще попросили как бы выглядела эта же программа только вместо двух полей три, например тип машины(седан/внедорожник/мини)
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
28.01.2023, 01:39
nikita__, можно так, как-нибудь, хотя лучше это делать через иерархию классов:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
enum Type {
    SEDAN("Седан"), MERCEDES("Мерседес");
    private final String name;
 
    Type(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return name;
    }
}
private final Type type;
По аналогии с другими полями в toString и конструктор только добавить остается.
0
0 / 0 / 0
Регистрация: 15.01.2023
Сообщений: 9
28.01.2023, 02:02  [ТС]
вот что у меня получилось сейчас, там еще 3 метода есть, но на них можно не смотреть, суть в чём. финишной прямой остаётся запись того что ввели(машины и их данные) в текстовый файл, перевёл на польский слова(так надо), но на всякий скажу что с начала идёт кол-во машин которые хочё добавить, модель - тип - год выпуска - цена

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
import java.util.Scanner;
 
class Salon {
    private String model;
    private int price;
    private String type;
    private  int age;
 
    public Salon(String model, String type, int age, int price) {
        this.model = model;
        this.price = price;
        this.type = type;
        this.age = age;
    }
    void Pozdrowienia(){
        System.out.println("\n SAMOCHODY TOYOTA - OD SAMOCHODÓW MIEJSKICH DO SUV-ÓW, OD HYBRYD PO AUTA UŻYTKOWE, TU ZNAJDZIESZ TOYOTĘ, KTÓREJ SZUKASZ \n");
    }
 
    void samochodySedan(){
        System.out.println("Do sprzedaży mamy fajny "+ type + " " + model + " " + age + " " + "rocznika o cene" + " " + price + " złotych");
    }
 
    double RabatDlaPracownikow(double rabat){
        return price - (price * rabat);
    }
 
    @Override
    public String toString() {
        String s = "'" + model + "'";
        String d = "'" + type + "'";
 
        return String.format("| Model: %-16s  |  Typ nawodzenia: %-10s   |   Rocznik: %-6d   |   Cena: %-6d   |", s, d, age, price);
    }
}
 
class MyProg {
    public static void main(String[] args) {
 
        Salon toyota = new Salon("Corolla","sedan",2021,105000);
 
        toyota.Pozdrowienia();
        toyota.samochodySedan();
        System.out.println(" Dla pracownikow firmy TOYOTA jest zniszka 20%, dzięki jej cena samochodu wynosi " + toyota.RabatDlaPracownikow(0.2) + "złotych\n" );
 
        Scanner in = new Scanner(System.in);
        System.out.print("Ile samochodow dodac? - ");
        int n = in.nextInt();
        if (n < 1)
            return;
 
        Salon[] salon = new Salon[n];
 
        for (int i = 0; i < n; i++) {
            in.nextLine();
            System.out.printf("\nSamochod %d:\nModel: ", i + 1);
            String model = in.nextLine();
 
            System.out.print("Typ nawodzenia? :");
            String type = in.nextLine();
 
            System.out.print("Rocznik? :");
            int age = in.nextInt();
 
            System.out.print("Cena?: ");
            int price = in.nextInt();
 
            salon[i] = new Salon(model, type, age, price);
        }
 
        String line = "";
        int size = salon[0].toString().length();
        for (int i = 0; i < size; i++)
            line += (i < 1 || i == size - 1)? "+" : "-";
 
        System.out.println();
        System.err.println(line);
        for (int i = 0; i < n; i++) {
            System.err.println(salon[i]);
            System.err.println(line);
        }
        
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2023, 02:02
Помогаю со студенческими работами здесь

Пустая строка в создании объектов класса через цикл появляется только при первой итерации
Я пытался нагуглить почему у меня при таком вводе пропускался первый ввод строки и нашел, что это можно пофиксить с помощью cin.ignore(). Я...

Нет методов чтения и записи для полей данных объектов типа класса
Здравствуйте! Помогите пожалуйста! сломал весь мозг. Ни как не могу понять в чем дело сеттеры/геттеры прописал, но вот такое замечание...

Создание класса конструктора для создание объектов в Higchart на основе массивов данных
Привет всем! Нужна ваша помощь в создании управляемой диаграммы. С помощью библиотеки Higchart, я создала круговую диаграмму. В этой...

Даны площади нескольких кругов. Найти радиус самого маленького из них. Через цикл while и через цикл do while
Даны площади нескольких кругов. Найти радиус самого маленького из них. Через цикл while и через цикл do while

Создание массива объектов класса через список инициализации в конструкторе композита
Может, просто плохо искала, но не могу найти. Есть класс, атрибутом которого является массив объектов другого класса. Как составить...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru