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

Использование ссылок

23.06.2014, 23:05. Показов 1143. Ответов 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
//покупатель
public class Client {
    public static void main (String[] args){
        String name, lastName;
        Date birthday;
        int id;
    }
}
 
//Товар
public class Device {
    public static void main (String[] args){
        String brand;
        Date reliseDate;
        int id;
    }
}
 
public class Oredered_Items {
    public static void main (String[] args){
        int orderId, clientId;
        Date purchaseDate;
    }
}
Необходимо создать клиента и устройство, которое он приобретает, и связать их. Как то непонятно как их связать, я так понимаю по ссылкам на id, то есть чтобы потом можно было искать по клиенту все его приобретенные устройства. То есть сделать какой то счетчик на id и по нему искать? но как именно связать 2 разных класса?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2014, 23:05
Ответы с готовыми решениями:

Использование ссылок
У меня задание написать программу с использованием операций управления памятью для сравнения двух символьных строк. Это есть, но есть...

Использование ссылок
Стоит ли активно использовать ссылки? Например в параметрах функции, в foreach и т.д.

Использование ссылок в IE/Favorites
Расскажите, кто знает, как можно программно добавить, получить информацию о ссылках из Favorites в IE?

3
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
24.06.2014, 01:50
Лучший ответ Сообщение было отмечено koLLiki как решение

Решение

можно и вот так
как вариант

class Buy
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Buy {
    private int idUser;
    private int idDevice;
    
    public Buy(int idU,int idD)
    {
        this.idDevice = idD;
        this.idUser = idU;
    }
    public int idUser()
    {
        return this.idUser;
    }
    public int idDevice()
    {
        return this.idDevice;
    }
}

class Client
Кликните здесь для просмотра всего текста
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
import java.util.Date;
 
public class Client {
        private String name;
        private String surname;
        private Date birthday;
        private int id;
 
        public Client(String name,String srname,Date d,int id)
        {
            this.birthday = d;
            this.id = id;
            this.name = name;
            this.surname = srname;
        }
        
        public String showInfoClient()
        {
         StringBuilder sb = new StringBuilder();
         sb.append(this.id);
         sb.append(" ");
         sb.append(this.name);
         sb.append(" ");
         sb.append(this.surname);
         sb.append(" ");
         sb.append(this.id);
         return sb.toString();
        }  
        
        public int showID()
        {
            return this.id;
        }
        public boolean findClient(int findId)
        {
          if (this.id == findId)
              return true;
          else 
              return false;
        }
}

class Device
Кликните здесь для просмотра всего текста
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
import javax.xml.crypto.Data;
 
public class Device {
    private String brend;
    private Data reliseDate;
    private int id;
    
    public Device(String s,Data d,int n)
    {
        this.brend = s;
        this.id = n;
        this.reliseDate = d;
    }
    
    public String showInfoDevice()
        {
         StringBuilder sb = new StringBuilder();
         sb.append(this.id);
         sb.append(" ");
         sb.append(this.brend);
         sb.append(" ");
         sb.append(this.reliseDate);
         return sb.toString();
        } 
    
    public int showID()
        {
            return this.id;
        }
}

class GeneralClass
Кликните здесь для просмотра всего текста
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
import java.util.ArrayList;
 
public class GeneralClass {
    public static void main(String[] args) {
        Client clien;
        Device device;
        Buy buy;
        int find;
        boolean q;
        ArrayList<Buy> listBuy = new ArrayList<>();
        ArrayList<Client> listClient = new ArrayList<>();
        ArrayList<Device> listDevice = new ArrayList<>();
        
        
        // 1
        clien = new Client("Human_1","Ivanov_1", null, 1);
        device = new Device("Divice_1", null,100);
        buy = new Buy(clien.showID(),device.showID());
        listBuy.add(buy);
        listClient.add(clien);
        listDevice.add(device);
        
        // 2 
        clien = new Client("Human_2","Ivanov_2", null, 2);
        device = new Device("Divice_2", null,101);
        buy = new Buy(clien.showID(),device.showID());
        listBuy.add(buy);
        listClient.add(clien);
        listDevice.add(device);
        
        // 3 
        clien = new Client("Human_3","Ivanov_3", null, 3);
        device = new Device("Divice_3", null,102);
        buy = new Buy(clien.showID(),device.showID());
        listBuy.add(buy);
        listClient.add(clien);
        listDevice.add(device);
        
        // 4 
        clien = new Client("Human_3","Ivanov_3", null, 3);
        device = new Device("Divice_4", null,103);
        buy = new Buy(clien.showID(),device.showID());
        listBuy.add(buy);
        listClient.add(clien);
        listDevice.add(device);
        
        
        //find user3  id = 3
        find = 3;
        q = false;
        for(int i=0;i<listClient.size();i++)
        {
           clien = listClient.get(i);
           if (clien.findClient(find))
           {
               device = listDevice.get(i);               
               System.out.println(device.showInfoDevice());
               q = true;
           }
        }
        if (!q) System.out.println("Client id = "+ find +" it`s not found.");
    }
}
1
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 8
24.06.2014, 02:57  [ТС]
Спасибо большое за ответ!)
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.06.2014, 10:06
Лучший ответ Сообщение было отмечено koLLiki как решение

Решение

koLLiki, Зачем связывать по id? Вы же не БД.

Создайте класс клиент, класс товар и класс связи клиентТовар который будет содержать в себе ссылку на клиент и ссылку на товар. Не id

newyork7776, зачем давать новичку такое кривое и убогое решение? Он же потом будет думать что так и надо.


Device
Кликните здесь для просмотра всего текста

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
import java.util.Date;
 
public class Device {
    private String brend;
    private Date releaseDate;
    
    public Device(String brand, Date date)
    {
        this.brend = brand;
        this.releaseDate = date;
    }
 
    public String getBrend() {
        return brend;
    }
 
    public void setBrend(String brend) {
        this.brend = brend;
    }
 
    public Date getReleaseDate() {
        return releaseDate;
    }
 
    public void setReleaseDate(Date releaseDate) {
        this.releaseDate = releaseDate;
    }    
        @Override
    public String toString() {
        return "Device [brend=" + brend + ", releaseDate=" + releaseDate + "]";
    }
 
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((brend == null) ? 0 : brend.hashCode());
        result = prime * result
                + ((releaseDate == null) ? 0 : releaseDate.hashCode());
        return result;
    }
 
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Device other = (Device) obj;
        if (brend == null) {
            if (other.brend != null)
                return false;
        } else if (!brend.equals(other.brend))
            return false;
        if (releaseDate == null) {
            if (other.releaseDate != null)
                return false;
        } else if (!releaseDate.equals(other.releaseDate))
            return false;
        return true;
    }
}



Client
Кликните здесь для просмотра всего текста

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
import java.util.Date;
 
public class Client {
    
    private String firstName;
    private String lastName;
    private Date birthday;
 
    public Client(String firstName, String lastName, Date birthday)
    {
        this.birthday = birthday;
        this.firstName = firstName;
        this.lastName = lastName;
    }
 
    public String getFirstName() {
        return firstName;
    }
 
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
 
    public String getLastName() {
        return lastName;
    }
 
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
 
    public Date getBirthday() {
        return birthday;
    }
 
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
        @Override
    public String toString() {
        return "Client [firstName=" + firstName + ", lastName=" + lastName
                + ", birthday=" + birthday + "]";
    }
 
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result
                + ((birthday == null) ? 0 : birthday.hashCode());
        result = prime * result
                + ((firstName == null) ? 0 : firstName.hashCode());
        result = prime * result
                + ((lastName == null) ? 0 : lastName.hashCode());
        return result;
    }
 
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Client other = (Client) obj;
        if (birthday == null) {
            if (other.birthday != null)
                return false;
        } else if (!birthday.equals(other.birthday))
            return false;
        if (firstName == null) {
            if (other.firstName != null)
                return false;
        } else if (!firstName.equals(other.firstName))
            return false;
        if (lastName == null) {
            if (other.lastName != null)
                return false;
        } else if (!lastName.equals(other.lastName))
            return false;
        return true;
    }
    
}


ClientPurchase
Кликните здесь для просмотра всего текста
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
import java.util.Date;
 
public class ClientPurchase {
    
    private Client client;
    private Device device;
    private Date purchaseDate;
    
    public ClientPurchase(Client client, Device device, Date purchaseDate) {
        this.client = client;
        this.device = device;
        this.purchaseDate = purchaseDate == null ? new Date() : purchaseDate;
    }
 
    public Client getClient() {
        return client;
    }
 
    public void setClient(Client client) {
        this.client = client;
    }
 
    public Device getDevice() {
        return device;
    }
 
    public void setDevice(Device device) {
        this.device = device;
    }
 
    public Date getPurchaseDate() {
        return purchaseDate;
    }
 
    public void setPurchaseDate(Date purchaseDate) {
        this.purchaseDate = purchaseDate;
    }
        @Override
    public String toString() {
        return "ClientPurchase [client=" + client + ", device=" + device
                + ", purchaseDate=" + purchaseDate + "]";
    }
 
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((client == null) ? 0 : client.hashCode());
        result = prime * result + ((device == null) ? 0 : device.hashCode());
        result = prime * result
                + ((purchaseDate == null) ? 0 : purchaseDate.hashCode());
        return result;
    }
 
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        ClientPurchase other = (ClientPurchase) obj;
        if (client == null) {
            if (other.client != null)
                return false;
        } else if (!client.equals(other.client))
            return false;
        if (device == null) {
            if (other.device != null)
                return false;
        } else if (!device.equals(other.device))
            return false;
        if (purchaseDate == null) {
            if (other.purchaseDate != null)
                return false;
        } else if (!purchaseDate.equals(other.purchaseDate))
            return false;
        return true;
    }
 
}



MainClass

Кликните здесь для просмотра всего текста
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
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
   
public class MainClass {
    public static void main(String[] args) {
        Client client1 = new Client("koko", "momo", new Date());
        Client client2 = new Client("vvv", "kkk", new Date());
        
        Device device1 = new Device("Sony", new Date());
        
        
        List<ClientPurchase> purchases = new ArrayList<>();
        ClientPurchase purchase1 = new ClientPurchase(client1, device1, new Date());
        ClientPurchase purchase2 = new ClientPurchase(client2, device1, new Date());
        
        purchases.add(purchase1);
        purchases.add(purchase2);
        
        ClientPurchase resultPurchase = findClientPurchase(purchases, client1);
        
        if(resultPurchase != null) {
            System.out.println("Purchase found: " + resultPurchase);
        }else{
            System.out.println("Noathing found");
        }
 
    }
    
    private static ClientPurchase findClientPurchase(List<ClientPurchase> purchases, Client client) {
        for (ClientPurchase clientPurchase : purchases) {
            if(clientPurchase.getClient().equals(client)) {
                return clientPurchase;
            }
        }
        return null;
    }
    
    
}
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2014, 10:06
Помогаю со студенческими работами здесь

Использование ссылок в CLI
Как использовать ссылки, например Pen^ pen = gcnew Pen(color); int w=4; pen-&gt;Width=&amp;w; чтобы при изменении w изменялся и...

Использование ссылок по аналогии с C++
доброго времени суток. подскажите пожалуста если переводить код C++ на C# (без использования unsafe) достаточно ли в конструкции вида...

Использование ссылок и указателей
Добрый вечер Помогите разобраться и понять «Использование ссылок и указателей» Прочел много литературы но понять сложно Объясните...

Использование ссылок на базовый класс
MyDerivedClass derived = new MyDerivedClass(); // Create an object. MyBaseClass mybc = (MyBaseClass) derived; // Cast the...

Совместное использование указателей и ссылок
int *ptr; int &amp;ref = *ptr; ref = 1; Вот и весь вопрос. Ничего плохого в этом нет?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru