• Мая 26, 2019, 11:10:09 pm
• Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Новости: Вебинар о выборе IT профессии и руководство для новичков: http://bit.ly/2HG2vFp

Автор Тема: Java_OOP_Alexander_Pankovskogo_13_05_2019  (Прочитано 103 раз)

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11690
    • Просмотр профиля
    • E-mail
Java_OOP_Alexander_Pankovskogo_13_05_2019
« : Мая 13, 2019, 10:04:41 am »
Wellcome

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11690
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #1 : Мая 15, 2019, 02:03:54 pm »
Итак обещанные ссылки

Прочитать и полюбить
Стандарты оформления кода - https://www.oracle.com/technetwork/java/codeconventions-150003.pdf



Книги по Java - https://drive.google.com/drive/folders/14YAjUyIsosN1_2mvqFvwaEn9mf3HKRD4?usp=sharing

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11690
    • Просмотр профиля
    • E-mail

ViktoriaVie

  • Пользователи
  • *
  • Сообщений: 8
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #3 : Мая 15, 2019, 08:16:44 pm »
Спасибо!!!

Valya Hryhorieva

  • Пользователи
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #4 : Мая 18, 2019, 09:21:48 am »
Спасибо!

Valya Hryhorieva

  • Пользователи
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #5 : Мая 19, 2019, 05:57:19 pm »
Пока что сделала только первые 2 задачи первой домашки :(

https://github.com/Meowww717/OOP_HomeWork

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11690
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #6 : Мая 19, 2019, 11:03:22 pm »
Valya Hryhorieva
В классе Cat — нет конструктора по умолчанию.

В классе Треугольник нет методов получения и установки. Нет конструктора по умолчанию.

В остальном решение верное.

balkeep

  • Пользователи
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #7 : Мая 20, 2019, 06:54:32 am »
1.1. Описать класс «Cat» (в качестве образца можно взять домашнего питомца). Наделить его свойствами и методами. Создать несколько экземпляров объектов этого класса. Использовать эти объекты.
package com.gmail.balkeep;

public class Cat {
private String color;
private int length;
private int weight;

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public int getLength() {
return length;
}

public void setLength(int length) {
this.length = length;
}

public int getWeight() {
return weight;
}

public void setWeight(int weight) {
this.weight = weight;
}

public Cat(String color, int length, int weight) {
super();
this.color = color;
this.length = length;
this.weight = weight;
}

public Cat() {

}

@Override
public String toString() {
return "Cat [color=" + color + ", length=" + length + ", weight=" + weight + "]";
}

public boolean isFat() {
if (this.weight > 4) {
return true;
} else {
return false;
}
}

public void sayMeow() {
System.out.println("Meow!");
}
}

package com.gmail.balkeep;

public class Main {

public static void main(String[] args) {
Cat catWhite = new Cat("white", 23, 5);
Cat catBlack = new Cat("black", 21, 3);

System.out.println(catWhite.isFat());
System.out.println(catBlack.isFat());

Cat catGray = new Cat("gray", catWhite.getLength() + catBlack.getLength(),
catWhite.getWeight() + catBlack.getWeight());
System.out.println(catGray);

catGray.sayMeow();

}

}


1.2. Описать класс «Triangle». В качестве свойств возьмите длины сторон треугольника. Реализуйте метод, который будет возвращать площадь этого треугольника. Создайте несколько объектов этого класса и протестируйте их.
package com.gmail.balkeep;

public class Triangle {
private double a;
private double b;
private double c;

public Triangle(double a, double b, double c) {
super();
this.a = a;
this.b = b;
this.c = c;
}

public Triangle() {
super();
}

public double getA() {
return a;
}

public void setA(double a) {
this.a = a;
}

public double getB() {
return b;
}

public void setB(double b) {
this.b = b;
}

public double getC() {
return c;
}

public void setC(double c) {
this.c = c;
}

public double calcArea() {
double s;
double a = this.a;
double b = this.b;
double c = this.c;

if (((a + b) > c) && ((a + c) > b) && ((b + c) > a)) {
double p = (a + b + c) / 2;
s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
} else {
s = -1.0;
System.out.println("Such triangle does not exist!");
;
}
return s;
}

}
package com.gmail.balkeep;

public class Main {

public static void main(String[] args) {
Triangle triangleOne = new Triangle(1,2,2.7);
Triangle triangleTwo = new Triangle(1,2,0.1);
Triangle triangleThree = new Triangle(3,4,6.5);

System.out.println(triangleOne.calcArea());
System.out.println(triangleTwo.calcArea());
System.out.println(triangleThree.calcArea());

}

}


Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11690
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #8 : Мая 20, 2019, 01:39:39 pm »
Balkeep
Класс Кот
Не соблюден порядок описания членов класса (конструктор идет после методов)
В остальном решение верное

balkeep

  • Пользователи
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #9 : Мая 21, 2019, 04:16:22 pm »
1.3. Описать класс «Vector3d» (т. е., он должен описывать вектор в трехмерной, декартовой системе координат). В качестве свойств этого класса возьмите координаты вектора. Для этого класса реализовать методы сложения, скалярного и векторного произведения векторов. Создайте несколько объектов этого класса и протестируйте их.

package com.gmail.balkeep;

public class Vector3d {
private double x;
private double y;
private double z;

public Vector3d(double x, double y, double z) {
super();
this.x = x;
this.y = y;
this.z = z;
}

public Vector3d() {
super();
}

public double getX() {
return x;
}

public void setX(double x) {
this.x = x;
}

public double getY() {
return y;
}

public void setY(double y) {
this.y = y;
}

public double getZ() {
return z;
}

public void setZ(double z) {
this.z = z;
}

public Vector3d addVectors(Vector3d v1) {
Vector3d vNew = new Vector3d(this.x + v1.x, this.y + v1.y, this.z + v1.z);
return vNew;
}

public double sMultiplyVectors(Vector3d v1) {
double scalar = this.x * v1.x + this.y * v1.y + this.z * v1.z;
return scalar;
}

public Vector3d vMultiplyVectors(Vector3d v1) {
Vector3d vNew = new Vector3d(this.y*v1.z-this.z*v1.y, this.z*v1.x-this.x*v1.z, this.x*v1.y-this.y*v1.x);
return vNew;
}

@Override
public String toString() {
return "Vector3d [x=" + x + ", y=" + y + ", z=" + z + "]";
}
}
package com.gmail.balkeep;

public class Main {

public static void main(String[] args) {
Vector3d vectorOne = new Vector3d(1, 2, 3);
Vector3d vectorTwo = new Vector3d(1, 2, 1);
Vector3d vectorThree = new Vector3d(1, 1, 0);
Vector3d vectorFour = new Vector3d(1, 2, -2);

System.out.println(vectorOne.addVectors(vectorTwo));
System.out.println(vectorOne.sMultiplyVectors(vectorThree));
System.out.println(vectorOne.vMultiplyVectors(vectorFour));
}
}

1.4. Опишите класс Phone (одним из свойств должен быть его номер). Также опишите класс Network (сеть мобильного оператора). Телефон должен иметь метод регистрации в сети мобильного оператора. Также у телефона должен быть метод call (номер другого телефона), который переберет все телефоны, зарегистрированные в сети. Если такой номер будет найден, то осуществить вызов, если нет - вывести сообщение об ошибочности набранного номера.

package com.gmail.balkeep;

public class Phone {
private String user;
private String model;
private int number;

public Phone(String user, String model, int number) {
super();
this.user = user;
this.model = model;
this.number = number;
}

public Phone() {
super();
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}

public String getModel() {
return model;
}

public void setModel(String model) {
this.model = model;
}

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public boolean register(Network network) {
Phone[] net1 = network.getNetwork();
for (int i = 0; i < net1.length; i++) {
if (net1[i] == null) {
net1[i] = this;
return true;
}
}

return false;
}

public String call(int phoneDest, Network network) {
Phone[] net1 = network.getNetwork();
String a = "Nope! Wrong number.";

for (int i = 0; i < net1.length; i++) {
try {
if (net1[i].getNumber() == phoneDest) {
a = net1[i].receive().toString();
}
} catch (NullPointerException e) {
}
}

return a;
}

public String receive() {
return "You can talk to " + this.getUser() + " now. Please do.";
}

@Override
public String toString() {
return "Phone [user=" + user + ", model=" + model + ", number=" + number + "]";
}
}
package com.gmail.balkeep;

import java.util.Arrays;

public class Network {
private Phone[] Network = new Phone[10];

public Network(Phone[] network) {
super();
Network = network;
}

public Network() {
super();
}

public Phone[] getNetwork() {
return Network;
}

public void setNetwork(Phone[] network) {
Network = network;
}

public void clear() {
Phone[] net1 = this.getNetwork();
for (int i = 0; i < net1.length; i++) {
net1[i] = null;
}
}

public void clearIndex(int a) {
Phone[] net1 = this.getNetwork();
net1[a] = null;

}

@Override
public String toString() {
return "Network= [" + Arrays.toString(Network) + "]";
}


}
package com.gmail.balkeep;

public class Main {

public static void main(String[] args) {
Network vodaphone = new Network();

Phone phone1 = new Phone("John Snow","Siemens SL45", 453597);
Phone phone2 = new Phone("Daenerys Targaryen","Nokia 3310", 101);
Phone phone3 = new Phone("Sansa Stark","Siemens SL45", 102);
Phone phone4 = new Phone("Aria Stark","Siemens SL45", 103);


phone1.register(vodaphone);
phone2.register(vodaphone);
phone3.register(vodaphone);
phone4.register(vodaphone);

vodaphone.clear();
System.out.println(vodaphone);

phone1.register(vodaphone);
phone2.register(vodaphone);
phone3.register(vodaphone);
phone4.register(vodaphone);

vodaphone.clearIndex(2);

System.out.println(vodaphone);

System.out.println(phone1.call(101, vodaphone));

}

}

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11690
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #10 : Мая 21, 2019, 11:52:36 pm »
Balkeep
По условию у метода исходящий звонок должен быть один параметр а у вас их два, что нарушает условие:
        public String call(int phoneDest, Network network) {
В остальном решение верное

balkeep

  • Пользователи
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #11 : Мая 22, 2019, 06:50:50 am »
Как то я пропустил этот момент с одним параметром. С другой стороны, а как обойтись одним параметром, если сетей несколько?  :)

Valya Hryhorieva

  • Пользователи
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #12 : Мая 22, 2019, 04:01:28 pm »
Задача 1.3

Что-то пока не могу разобраться как в гитхабе размещать задачи в разных проектах :(

И правильно ли то, что в классе Vector3d я сделала методы статичными?

https://github.com/Meowww717/OOP_HomeWork/blob/master/Vector3d.java

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 11690
    • Просмотр профиля
    • E-mail
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #13 : Мая 23, 2019, 12:39:16 pm »
Valya Hryhorieva

Да в таком исполнении эти методы и должны быть статическими. Решение верное.

Valya Hryhorieva

  • Пользователи
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Java_OOP_Alexander_Pankovskogo_13_05_2019
« Ответ #14 : Мая 24, 2019, 11:12:11 am »
Задача 1.4
Наконец с первой домашкой закончила))) Осталось еще 3, чтобы догнать

Класс Network
https://github.com/Meowww717/OOP_HomeWork/blob/master/Network.java

Класс Phone
https://github.com/Meowww717/OOP_HomeWork/blob/master/Phone.java