ΠΡΠΈΠ²Π΅Ρ!
ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅ ΠΏΡΠΎΡ
ΠΎΠ΄ΡΡ 5 ΠΈ 6 ΠΏΡΠ½ΠΊΡΡ.
Π‘ΠΎΠ²ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠ°Π»ΡΡ
package com.javarush.task.task24.task2404;
/*
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Rectangle
Π ΠΊΠ»Π°ΡΡΠ΅ Rectangle:
1. ΠΠ·ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ getHeight ΠΈ getWidth, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠΎΠ² HasHeight ΠΈ HasWidth ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
2. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² getHeight ΠΈ getWidth ΡΠΎΠ·Π΄Π°ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ - ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
3. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉ getHeight Π² castToHasHeight, getWidth Π² castToHasWidth (Π½Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π°ΠΆΠΌΠΈ Shift+F6).
4. Π£Π±Π΅ΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ Rectangle.
P.S. ΠΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΡΠ°Π½Π΅Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
1. Π ΠΊΠ»Π°ΡΡΠ° Rectangle Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ castToHasHeight.
2. Π ΠΊΠ»Π°ΡΡΠ° Rectangle Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ castToHasWidth.
3. ΠΠ΅ΡΠΎΠ΄ castToHasHeight Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° HasHeight.
4. ΠΠ΅ΡΠΎΠ΄ castToHasWidth Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° HasWidth.
5. ΠΠ±ΡΠ΅ΠΊΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ castToHasHeight Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΡΡΠΎΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ y ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ.
6. ΠΠ±ΡΠ΅ΠΊΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ castToHasWidth Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΠΈΡΠΈΠ½Ρ, ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ x ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ.
7. ΠΠ»Π°ΡΡ Rectangle Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ HasHeight.
8. ΠΠ»Π°ΡΡ Rectangle Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ HasWidth.
*/
public class Solution {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(1, 2, 3, 4);
//System.out.println(getHeight(rectangle));
//System.out.println(getWidth(rectangle));
/////////////////////expected//////////////////
System.out.println(getHeight(rectangle.castToHasHeight()));
System.out.println(getWidth(rectangle.castToHasWidth()));
}
public static double getHeight(HasHeight rectangle) {
return rectangle.castToHasHeight();
}
public static double getWidth(HasWidth rectangle) {
return rectangle.castToHasWidth();
}
public static class Rectangle {
private Point point1;
private Point point2;
public Rectangle(double x1, double y1, double x2, double y2) {
point1 = new Point(x1, y1);
point2 = new Point(x2, y2);
}
public HasHeight castToHasHeight() {
return new HasHeight() {
@Override
public double castToHasHeight() {
return Math.abs(point1.getY() - point2.getY());
}
};
}
public HasWidth castToHasWidth () {
return new HasWidth() {
@Override
public double castToHasWidth() {
return Math.abs(point1.getX() - point2.getX());
}
};
}
}
}