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

ООП: создать класс "Человек" и класс "Адрес"

11.05.2015, 12:36. Показов 12072. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите новfчку . нужно создать класс Человек с полями и класс адрес . в классе человек должно содержаться поле с типом адрес . а как потом пользоваться этим полем ?
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
public class Address {
public String city ;
String street ;
Address streetNumber ;
Address houseNumber ;
Address numberOfApartments ;
}
 
public class Person {
String name ;
int Age ;
    
String profession ;
String sex ;
}
public class People {
 
public static void main (String [] args ) {
 
Person oleg = new Person ();
oleg.name = " Oleg " ;
oleg.Age = 23;
oleg.sex = " men " ;
oleg.profession = " programmer " ;
}
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2015, 12:36
Ответы с готовыми решениями:

Создать класс Человек, имеющий имя, адрес, телефон
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new...

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

Создать базовый класс Человек. Создать производный класс Сотрудник, содержащий следующие данные
Создать базовый класс Человек. Каждый объект класса должен содержать следующие данные: ФИО, год рождения, пол. Класс должен выполнять...

8
 Аватар для Sanan07
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
11.05.2015, 14:41
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Adress {
    
    private String name;
    private int numberOfApart;
    
    public Adress(String name, int numberOfApart) {
        this.name = name;
        this.numberOfApart = numberOfApart;
    }
 
    @Override
    public String toString() {
        return "["+ name + ", number "+ numberOfApart+ "]";
    }
    
}
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
public class Person  {
    
    private String name;
    private String surName;
    private int age;
    private char gender;
    private String profession;
    private Adress adress;
    
    public Adress getAdress() {
        return adress;
    }
 
    public void setAdress(Adress adress) {
        this.adress = adress;
    }
 
    public Person(String name, String surName, int age, char gender,String profession) {
        this.name = name;
        this.surName = surName;
        this.age = age;
        this.gender = gender;
        this.profession = profession;
    }
    
    
    
    @Override
    public String toString() {
        return "Person [name=" + name + ", surName=" + surName + ", age=" + age
                + ", gender=" + gender + ", profession=" + profession
                + ", adress=" + adress + "]";
    }
        
}
1
10 / 11 / 6
Регистрация: 11.05.2015
Сообщений: 101
11.05.2015, 15:47
Лучший ответ Сообщение было отмечено dekster15 как решение

Решение

Для наглядности.
Если не брать в оборот конструкторы и инкапсуляцию:
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
class Address{
    String city;
    String street;
    int number;
}
class Person{
    Address address;
    String name;
    int age;
    
    @Override
    public String toString(){
        return name + ", "+ age + "лет. " + address.city +", " + address.street +" "+ address.number+".";
    }
}
public class CyberHelp1 {
    public static void main(String[] args) {
        Person aleks = new Person();
        aleks.address = new Address();
        
        aleks.address.city = "Белорусь";
        aleks.address.street = "Армейская";
        aleks.address.number = 100;
        aleks.name = "Александр";
        aleks.age = 60;
        
        System.out.println(aleks.toString());
    }   
}
0
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 19
11.05.2015, 16:04  [ТС]
Пасиб, то что надо)
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 5
19.02.2016, 11:56
а как написать пост номер, который является четырехзначным числом?
0
 Аватар для Sanan07
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
19.02.2016, 17:34
OlgaRenard,
Java
1
int postNumber;
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
19.02.2016, 23:09
Хочу напомнить, что агрегация довольно неуклюжая штука и несёт в себе большую связанность.

В практическом программировании так делать не стоит, если не хотите потом поиметь очень много проблем.

Необходимо уменьшать связанность. Адрес и персона должны быть независимы. Например так:

Модели

Address
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
public class Address {
    private final int id;
    private final String city;
    private final String street;
    private final int building;
 
    Address(int id, String city, String street, int building) {
        this.id = id;
        this.city = city;
        this.street = street;
        this.building = building;
    }
 
    public int getId() {
        return id;
    }
 
    public String getCity() {
        return city;
    }
 
    public String getStreet() {
        return street;
    }
 
    public int getBuilding() {
        return building;
    }
 
    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", city='" + city + '\'' +
                ", street='" + street + '\'' +
                ", building=" + building +
                '}';
    }
}


Person
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
public class Person {
    private final int id;
    private final String firstName;
    private final String middleName;
    private final String lastName;
 
    Person(int id, String firstName, String middleName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.middleName = middleName;
        this.lastName = lastName;
    }
 
    public int getId() {
        return id;
    }
 
    public String getFirstName() {
        return firstName;
    }
 
    public String getMiddleName() {
        return middleName;
    }
 
    public String getLastName() {
        return lastName;
    }
 
    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", firstName='" + firstName + '\'' +
                ", middleName='" + middleName + '\'' +
                ", lastName='" + lastName + '\'' +
                '}';
    }
}



Dao

PersonDao
Java
1
2
3
4
5
public interface PersonDao {
    Optional<Person> find(int id);
    List<Person> findAll();
    //... и другие
}

AddressDao
Java
1
2
3
4
5
public interface AddressDao {
    Optional<Address> find(int id);
    List<Address> findAll();
    //... и другие
}

PersonAddressDao
Java
1
2
3
public interface PersonAddressDao {
    Optional<Integer> findAddressIdByPersonId(int personId);
}



Service

PersonAddressService
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class PersonAddressService {
    
    private final PersonAddressDao dao;
 
    PersonAddressService(PersonAddressDao dao) {
        this.dao = dao;
    }
 
    Optional<Integer> getAddress(int personId) {
        return dao.findAddressIdByPersonId(personId);
    }
    //... и другие
}



Пример получения персоны и адреса
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
        // откуда-то берем дао и сервисы
        final PersonAddressService personAddressService;
        final PersonDao personDao; // тут лучше бы в сервисы обернуть
        final AddressDao addressDao; // и тут
        
        // ... ...
 
        // получаем персону по айди
        final Person person = addressDao.find(1);
        // получаем айди адреса по айди персоны
        final int personAddressId = personAddressService.getAddress(person.getId());
        // получаем адрес персоны
        final Address personAddress = addressDao.find(personAddressId);
1
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 5
04.03.2016, 11:18
Добавлено через 2 минуты
Sanan07, вы же не сможете написать 0007 (int postNumber )
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
04.03.2016, 15:31
OlgaRenard,
Цитата Сообщение от OlgaRenard Посмотреть сообщение
вы же не сможете написать 0007
в интах нет, а вот так - можно. Число нулей перед значащими цифрами изменяется автоматически:
Java
1
2
        int num = 5;
        String numString = String.format("%06d", num);
Такой код даст на экране 000005, а для числа 6180 выведет 006180 (как раз почтовый индекс).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2016, 15:31
Помогаю со студенческими работами здесь

Создать базовый класс Человек. Создать производный класс Сотрудник, содержащий следующие данные
Создать базовый класс Человек. Каждый объект класса должен содержать следующие данные: ФИО, год рождения, пол. Класс должен выполнять...

Создать базовый класс Дом (скрытое поле: адрес, методы доступа). Создать производный класс кватрира (площадь, количество
Создать базовый класс Дом (скрытое поле: адрес, методы доступа). Создать производный класс кватрира (площадь, количество комнат, методы...

Создать базовый класс Человек и производный класс Инженер
Помогите пожалуйста срочно!!! Создать базовый класс Человек, согласно варианту 4. Создать производный класс Инженер, содержащий...

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения...

Описать класс «Почтовый адрес организации». Необходимо создать следующие методы класс
1. Описать класс «Почтовый адрес организации». Необходимо создать следующие методы класс: · изменение составных частей адреса; ·...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru