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

Наследование в Java

14.01.2016, 16:45. Показов 1640. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте кодеры! Есть вопрос по задаче! Не могу ни как понять ее. Я вроде как изменил код, добавил модели ноутбуков. Например Toshiba_T200, но не уверен, что сделал правильно. Код написал я, но этот код нужно изменить, сути вопроса я не понял. Что конкретно хочет эта задача и помогите мне ее решить. Я задание выложил, а код сюда написал.
Спасибо!

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
package myfitrstprogram;                                    // Пакет и название пакета, в котором нахолится программа
 
 
import testobject.Asus;
import testobject.Computer;
import testobject.Notebook;
import testobject.Toshiba_T200;
 
 
public class MyFitrstProgram {                              // Это я создал публичный класс прежче чем написать код
 
 
    public static void main(String[] args) { 
//        Computer comp1 = new Computer("IBM", 2048, 350, 3, 2.4);       // comp это ссылчный элемент
//        Computer comp2 = new Computer(17.2, 160000, 3, 3.2);
      
          
        
    
//            comp1.setName("IBM");         // Модель компьютера
//            comp1.setRam(2048);              // Объем ОП
//            comp1.setHdd(350);               // Объем жесткого диска
//            comp1.setWeight(3);              // Вес
//            comp1.setProcessor(2.4);         // Процессор
//            comp1.setSize_monitor(17.4);     // Размер монитора
//            comp1.setColor(170000);          // Кол-во цветов
//            comp1.setUsb(4);                 // Кол-во USB
            
 
//            comp2.setName("Apple");
//            comp2.setRam(512);
//            comp2.setSize_monitor(15.0);
//            comp2.setColor(160000);
//            comp2.setUsb(3);
//            comp2.setHdd(1024);
//            comp2.setProcessor(3.2);
 
            
        
     
//        comp1.on();
//        comp1.load();
//        comp1.off();
//        
//        comp2.on();
//        comp2.load();
//        comp2.off();
 
        
                    
        
        Notebook notebook = new Notebook();
        
            notebook.setName("MacBook pro");
            
        
          notebook.on();
          notebook.load();
          notebook.off();
          
          
        Toshiba_T200 toshiba = new Toshiba_T200();
        
            toshiba.setName("Toshiba");
            toshiba.setDvd("Да");
            
          
         toshiba.on();
         toshiba.load();
         toshiba.off();
         
        
        Asus asus = new Asus();
        
            asus.setName("Asus");
            asus.setDvd("Нет");
            
         
         asus.on();
         asus.load();
         asus.off();
             
         
    }
  
}
 
 
 
// Computer comp = null; Это означает, что объект Computer (comp - это ссылочный эелемент) ни на что не ссылается и подвержен удалению;
// new Computer(); создалась переменная типа Computer;
// Computer comp2 = new Computer(); Переменная comp2 ссылается на созданный объект Computer
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
package testobject;                 // Создание сначала пакет, далее название пакета java
 
 
public class Computer {             // Создание класса далее название класса java
    
 
    String name;            // public модификатор доступа. Название должно быть текстовым по этому пишем String далее имя "name"
    
    int ram;                // Кол-во опреративной памяти обозначается в цифрах. По-этому пишем "int"
    
    int hdd;                // Кол-во памяти в hdd обозначается в цифрах. По-этому пишем "int"
    
    double weight;          // Вес с плавающей точкой double. Вес обозначается Weight
    
    double processor;        // Частота  процессора
    
    double size_monitor;    // Размер монитора
    
    int color;              // кол-во цветов
    
    int usb;                // кол-во usb портов
    
    
    
    public Computer() {
        System.out.println("Computer: Конструктор");
        
    }
 
    public Computer(String name, int ram, int hdd, double weight, double processor) {
        this.name = name;
        this.ram = ram;
        this.hdd = hdd;
        this.weight = weight;
        this.processor = processor;
    }
 
    public Computer(double size_monitor, int color, int usb, double processor) {
        this.size_monitor = size_monitor;
        this.color = color;
        this.usb = usb;
        this.processor = processor;
 
    }
    
    
    
    
    
    public int getUsb() {
        return usb;
    }
    
    public void setUsb(int newUsb) {
        if (newUsb<0){
            System.out.println("Данное значение "+newUsb+" не может быть отрицательным");
        }else if(newUsb>4){
            System.out.println("Данное значение "+newUsb+" не может быть больше 4");
 
        }      
    }
    
    public int getColor() {
        return color;
    }
    
    public void setColor(int newColor) {
        if(newColor>0){
        }else{
            System.out.println("Данное значение "+newColor+" не может быть отрицательным");
        }
    }
    
    
    public double getSize_monitor() {
            return size_monitor;
    }
    
    public void setSize_monitor(double newSize_monitor) {
            if (newSize_monitor>0){
            size_monitor = newSize_monitor;
            }else{
                System.out.println("Данное знаечение "+newSize_monitor+" не может быть отрицательным");
            }
    }
    
   public double getProcessor() {
            return processor;       
    }
    
    public void setProcessor(double newProcessor) {
            if (newProcessor>0){
           }else{
                System.out.println("Это значение "+newProcessor+" не может быть отрицательным");
           }
    }
    
    public int getWeight() {
        return color;
    }
    
    public void setWeight(int newWeight) {
        if(newWeight>0){
        }else{
            System.out.println("Данное значение "+newWeight+" не может быть отрицательным");
        }
    }
    
    public String getName() {
            return name;
        }
    
    public void setName(String newName) {
            name = newName;
        }
    
    public int getRam() {
            return ram;
    }
    
    public void setRam(int newRam) {
            if (newRam>0){
                ram = newRam;
            }else{
                System.out.println("Переданное значение "+newRam+" не может быть отрицательным!");
            }
    }
    
    public int getHdd() {
            return hdd;
    }
    
    public void setHdd(int newHdd) {
            if (newHdd>0){
                hdd = newHdd;
            }else{
                System.out.println("Переданное значение "+newHdd+" не может быть отрицательным!");
            }
    }
    
    
    
    
    
    
    public void on() {                                   // void - это тип метода т.е будет ли он возвращать какое-то значание или не будет. Написал, что пока не будет не чего возвращить и по этому написал "void". Мы создали одно дейсвие для компьтера "on" 
        print("Я включился. Моя модель "+getName());    // Вывод текста + имя компьтера
    }
    
    public void off() { 
        print("Я выключился");
    }
    
    public void load() {
        print("Я загружаюсь. Мой объем жесткого диска: "+getHdd()+" Гб. Процессор Intel i7 с частотой: "+getProcessor()+" Ггц. Размер монитора: "+getSize_monitor()+" дюйм");
    }
 
    
    
    protected void print(String str) {
        System.out.println(str);
    }
     
    
}
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
package testobject;
 
public class Notebook extends Computer {
    private String dvd;
 
    
    
    public Notebook(){
        System.out.println("Notebook: Конструктор");
    }
    
    
    @Override
    public String getName() {
            return name;
        }
    
    @Override
    public void setName(String newName) {
            name = newName;
        }
    
    public String getDvd() {
        return dvd;
    }
   
    public void setDvd(String newDvd) {
        dvd = newDvd;
    }
    
    @Override
     public void on() {   
         super.on();
        print("Notebook: я включился. Моя модель " +getName());    // Вывод текста + имя компьтера
    }
 
    @Override
     public void load() {
         
     }
     
     
}
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
package testobject;
 
 
public class Toshiba_T200 extends Notebook {
    
    public Toshiba_T200(){
      
    }
    
    @Override
    public String getName() {
            return name;
        }
    
    @Override
    public void setName(String newName) {
            name = newName;
        }
    
    @Override
     public void on() {   
         super.on();
        print("Я включился. Моя модель " +getName() );
     }
     
    @Override
     public void load() {
         super.load();
         print("Я загружаюсь. Моя модель " +getName()+ " Запись DVD: " +getDvd());
     }
     
    @Override
        public void off() {
            super.off();
            print("я выключился.");
        }
    
       
}
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
package testobject;
 
 
public class Asus extends Notebook {
    
    public Asus() {
      
    }
    
    @Override
    public String getName() {
            return name;
        }
    
    @Override
    public void setName(String newName) {
            name = newName;
        }
    
    @Override
     public void on() {   
         super.on();
        print("Я включился. Моя модель " +getName() );
     }
     
    @Override
     public void load() {
         super.load();
         print("Я загружаюсь. Моя моядель " +getName()+" Запись DVD: " +getDvd());
     }
     
    @Override
        public void off() {
            super.off();
            print("я выключился.");
        }
     
}
Миниатюры
Наследование в Java  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2016, 16:45
Ответы с готовыми решениями:

Наследование в Java
Написал класс: public class Point extends Graph { private int x; private int y; private int color; public...

Наследование в Java
Ребят можете объяснить почему в консоль выводит: &quot;1 2&quot;, а не &quot;2 2&quot;, или где можно про это прочитать? public class Class1 { ...

Наследование в java
ребят,вот прога,как сделать в ней наследование,подскажите плс package программы; import java.io. IOException;/* подключение...

6
 Аватар для Lumber
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
14.01.2016, 18:55
Наверное имеется ввиду, что классы Toshiba и Asus должны быть объявлены абстрактными.
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
14.01.2016, 19:16  [ТС]
Как это понимать? Что конкретно в коде поменять надо? Я просто задачу саму не понял. Что делать конкретно надо.
0
 Аватар для Lumber
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
14.01.2016, 20:11
надо сделать чтобы эта строчка стала некорректной:
Asus asus = new Asus();

чтобы этого добиться надо объявить класс Asus абстрактным, т.е. добавить в объявление слово abstract
public abstract class Asus extends Notebook {

такой класс можно наследовать, но нельзя создавать экземпляры Asus.
1
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
14.01.2016, 20:36  [ТС]
Хм. Может вы и правы. Может нужно сделать конструктор private, а потом создать дочерние классы марок ноутбуков, имеющие имена конкретных моделей???
0
 Аватар для Lumber
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
14.01.2016, 20:52
Лучший ответ Сообщение было отмечено Anonymous4722 как решение

Решение

Если сделать private конструктор невозможно будет унаследоваться. Компилятор ошибку выдаст (т.к. наследник неявно вызывает конструктор предка, а private конструктор он вызвать не сможет).

В то же время если это будут вложенные классы, то это не защитит от создания экземпляра (и унаследоваться можно будет). Т.к. вложенные классы и объемлющий имеют общую область видимости и видят все приватные поля/методы друг друга.
1
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
14.01.2016, 21:13  [ТС]
Я думаю, что вы правы. Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2016, 21:13
Помогаю со студенческими работами здесь

Java наследование
Немного запутался в теме наследования, а конкретнее что НЕ наследуется при наследовании ????

Наследование в Java
Привет, у меня постановка задачи следующая: есть Дом( вывести на экран год сооружения, количество этажей, материал) Подкласс должен быть...

Java наследование и полиморфизм
Определить иерархию амуниции рыцаря. Экипировать рыцаря. посчитать стоимость амуниции. Провести сортировку амуниции по весу. Найти...

Наследование параметров Java
Добрый день! Вопрос, который бывалым, возможно, покажется странным. Можно ли в производном классе Java унаследовать структуру...

Задача на наследование по Java
Здравствуйте. Помогите пожалуйста решить вот такую задачу. Даны 2 класса Array.java(родительский класс) и Polynom.java(наследуемый класс)....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru