Создать класс телефон java

Помогите, пожалуйста, с решением задачи

Вот условие: Создайте класс Phone (Телефон) одним из свойств должен быть его номер. Создайте класс Network (сеть мобильного оператора). В классе Телефон должны быть описаны следующие методы: ● Регистрация в сети мобильного оператора ● Метод реализующий исходящий звонок. Данный метод принимает один параметр (описывающий номер мобильного телефона). Логика работы этого метода такова: если текущий телефон не прошел регистрацию в сети, то закончить работу метода с сообщением об этом. Если текущий телефон прошел регистрацию и в сети также зарегистрирован телефон на номер которого совершается вызов, то вызвать метод входящий звонок у того телефона. Если телефон на номер которого вы совершаете вызов в сети не зарегистрирован, то закончить работу метода с сообщением об этом. ● Метод реализующий входящий звонок. Принимает параметр в виде номера с которого произвели вызов на текущий. Вывести сообщение вида вам звонит номер такой то public class Main < public static void main(String[] args) < Network network = new Network(); Phone phone1 = new Phone(380684657399L); network.registrationOfNewAbonent(phone1); Phone phone2 = new Phone(380679861245L); network.registrationOfNewAbonent(phone2); phone1.call(380684657399L); >> class Network < Phone[] phones = new Phone[100]; public void registrationOfNewAbonent(Phone phone) < for (int i = 0; i < phones.length; i++) < if (phones[i] != null) < continue; >else < phones[i] = new Phone(phone.getNumber()); break; >> > public boolean checkRegistration(long number) < for (int i = 0; i < phones.length; i++) < if (phones[i] == null) continue; if (number == phones[i].getNumber()) < return true; >> return false; > > class Phone < private long number; private Network network = new Network(); Phone(long number) < this.number = number; >public long getNumber() < return number; >public void setNumber(long number) < this.number = number; >public void incomingCall(long number) < System.out.println("The abonent " + number + " is calling you"); >public void call(long numberReceive) < if ((network.checkRegistration(this.number)) == true) < // Вот здесь всё время false. Я интуитивно понимаю, что // проблема в поле Network network = new Network(), но // как исправить не пойму. Если оставить просто // Network network; то выкидывает NullPointerException if (network.checkRegistration(numberReceive) == true) < incomingCall(this.number); >else < System.out.println("The abonent you calling is not registered in network"); >> else < System.out.println("You are not registered in network"); >> >

Источник

ООП. Задания

Создать класс «Матрица». Класс должен иметь следующие переменные:

Класс должен иметь следующие методы:

  1. сложение с другой матрицей;
  2. умножение на число;
  3. вывод на печать;
  4. умножение матриц.
Читайте также:  Php generator for mysql

3. Читатели библиотеки

Определить класс Reader , хранящий такую информацию о пользователе библиотеки:

  1. ФИО,
  2. номер читательского билета,
  3. факультет,
  4. дата рождения,
  5. телефон.
  6. Методы takeBook() , returnBook() .
  7. Разработать программу, в которой создается массив объектов данного класса.
  8. Перегрузить методы takeBook() , returnBook() :
    — takeBook , который будет принимать количество взятых книг. Выводит на консоль сообщение «Петров В. В. взял 3 книги».
    — takeBook , который будет принимать переменное количество названий книг. Выводит на консоль сообщение «Петров В. В. взял книги: Приключения, Словарь, Энциклопедия».
    — takeBook , который будет принимать переменное количество объектов класса Book (создать новый класс, содержащий имя и автора книги). Выводит на консоль сообщение «Петров В. В. взял книги: Приключения, Словарь, Энциклопедия».
  9. Аналогичным образом перегрузить метод returnBook() . Выводит на консоль сообщение «Петров В. В. вернул книги: Приключения, Словарь, Энциклопедия». Или «Петров В. В. вернул 3 книги».

4. Рекурсивный вывод чисел

Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае. Использовать рекурсию.

5. Наследование Student, Aspirant

  1. Создайте пример наследования, реализуйте класс Student и класс Aspirant , аспирант отличается от студента наличием некой научной работы.
  2. Класс Student содержит переменные: String firstName , lastName , group . А также, double averageMark , содержащую среднюю оценку.
  3. Создать метод getScholarship() для класса Student , который возвращает сумму стипендии. Если средняя оценка студента равна 5, то сумма 2000 грн, иначе 1900. Переопределить этот метод в классе Aspirant . Если средняя оценка аспиранта равна 5, то сумма 2500 грн, иначе 2200.
  4. Создать массив типа Student , содержащий объекты класса Student и Aspirant . Вызвать метод getScholarship() для каждого элемента массива.

Смотрите решение задачи в видео 1 , видео 2 .

6. Автомобили

  1. Создать класс Car в пакете com.company.vehicles , Engine в пакете com.company.details и Driver в пакете com.company.professions .
  2. Класс Driver содержит поля — ФИО, стаж вождения.
  3. Класс Engine содержит поля — мощность, производитель.
  4. Класс Car содержит поля — марка автомобиля, класс автомобиля, вес, водитель типа Driver , мотор типа Engine . Методы start() , stop() , turnRight() , turnLeft() , которые выводят на печать: «Поехали», «Останавливаемся», «Поворот направо» или «Поворот налево». А также метод toString() , который выводит полную информацию об автомобиле, ее водителе и моторе.
  5. Создать производный от Car класс — Lorry (грузовик), характеризуемый также грузоподъемностью кузова.
  6. Создать производный от Car класс — SportCar , характеризуемый также предельной скоростью.
  7. Пусть класс Driver расширяет класс Person .
Читайте также:  Html код ссылки это

Иерархия классов фото

7. Животные

  1. Создать класс Animal и расширяющие его абстрактные классы Dog , Cat , Bear .
  2. Класс Animal содержит переменную name и абстрактные методы makeNoise , eat , getDescription . Метод makeNoise , например, может выводить на консоль звуки животных. Метод eat выводит на консоль список того, чем питается данное животное. Метод getDescription возвращает описание животного.
  3. Dog , Cat , Bear переопределяют методы makeNoise , eat , getDescription .
  4. Создайте класс Ветеринар , в котором определите метод void treatAnimal(Animal animal) . Пусть этот метод распечатывает name и описание пришедшего на прием животного.
  5. В методе main создайте массив типа Animal , в который запишите животных всех имеющихся у вас типов. В цикле отправляйте их на прием к ветеринару. В отдельном цикле вызовите методы makeNoise , eat для каждого животного.

8. Уровни доступа

private default protected public
1. Один и тот же класс
2. Подкласс, находящийся в том же пакете, что и супер класс
3. Класс из того же самого пакета, не являющийся подклассом.
4. Подкласс, находящийся в другом пакете.
5. Класс из другого пакета, не являющийся подклассом данного.

9. Фигуры

  1. Создайте супер класс Shape и его наследников Circle , Rectangle .
  2. Класс Shape содержит абстрактный метод draw() и переменную хранящую цвет.
  3. Классы Circle , Rectangle содержат координаты точек.
  4. Создать массив содержащий эти фигуры.
  5. В цикле нарисовать их (вызвать метод draw ).

10. Интернет магазин, часть 1

  1. Создать класс Товар , имеющий переменные имя , цена , рейтинг .
  2. Создать класс Категория , имеющий переменные имя и массив товаров . Создать несколько объектов класса Категория .
  3. Создать класс Basket , содержащий массив купленных товаров.
  4. Создать класс User , содержащий логин, пароль и объект класса Basket . Создать несколько объектов класса User .
  5. Вывести на консоль каталог продуктов.
  6. Вывести на консоль покупки посетителей магазина.
  • Процедурное и объектно-ориентированное программирование
  • Принципы ООП
  • Классы и объекты
  • Конструктор
  • Ключевое слово this
  • Перегрузка
  • Стек и куча
  • Передача объектов в методы
  • Java varargs
  • Рекурсия
  • Сборщик мусора и метод finalize
  • Наследование
  • Ключевое слово super
  • Модификаторы доступа
  • Геттеры и сеттеры
  • Переопределение методов
  • Абстрактные классы и методы
  • Ключевое слово final

Источник

JavaDen / Network.java

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package phone ;
import java . util . ArrayList ;
import java . util . Arrays ;
public class main
public static void main ( String [] args )
Network ntw = new Network ();
ArrayList < Integer >phones = new ArrayList <>();
ntw . addNumbersListToNetwork (
Arrays . asList ( new Integer [] < 1 , 672346587 , 934215678 , 674562134 , 678903212 , 505558489 >));
int selfNumber = 671592424 ;
Phone myPhone = new Phone ( selfNumber , ntw );
int destinationNumber = 542211111 ;
Phone destinationPhone = new Phone ( destinationNumber , ntw );
myPhone . call ( destinationNumber );
System . out . println ();
System . out . println ();
myPhone . call ( 654434232 );
>
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package phone ;
import java . util . ArrayList ;
import java . util . List ;
public class Network
ArrayList < Integer >phoneArray = new ArrayList < Integer >();
public ArrayList < Integer >getPhoneArray ()
return phoneArray ;
>
public boolean getReqRegNumber ( int reqRegNumber )
return phoneArray . contains ( reqRegNumber );
>
public boolean addNumberToNetwork ( int reqRegNumber )
boolean result = this . getReqRegNumber ( reqRegNumber );
if (! result )
phoneArray . add ( reqRegNumber );
result = true ;
>
return result ;
>
public boolean addNumbersListToNetwork ( List < Integer >phonesList )
return phoneArray . addAll ( phonesList );
>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package phone ;
public class Phone
private int selfNumber ;
private Network ntw ;
private boolean isRegisteredInNetwork = false ;
public Phone ( int selfNumber , Network ntw )
this . ntw = ntw ;
this . selfNumber = selfNumber ;
this . checkAndRegisterMeInNetwork ();
>
private boolean checkAndRegisterMeInNetwork ()
if (! this . isRegisteredInNetwork )
this . isRegisteredInNetwork = this . ntw . addNumberToNetwork ( this . selfNumber );
>
return this . isRegisteredInNetwork ;
>
void call ( int destinationNumber )
// this.destinationNumber = destinationNumber;
if (! this . checkAndRegisterMeInNetwork ())
System . out . println ( «Network not found . » );
if ( ntw . getReqRegNumber ( destinationNumber ))
System . out . println ( «Registration Status Self number : » + ntw . getReqRegNumber ( selfNumber )
+ » \n Registration Status Dest number : » + ntw . getReqRegNumber ( destinationNumber )
+ » \n Calling to number : » + destinationNumber );
> else
System . out . println ( «Abonent » + destinationNumber + » out of service. » );
>
>
public int selfNumber ()
return selfNumber ;
>
public boolean connectDestNumID ( boolean registStatus )
return registStatus ;
>
public void print ()
System . out . println ( this . selfNumber );
>
>

Источник

Оцените статью