Guest User

Untitled

a guest
Dec 12th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. Рефакторинг Rectangle
  2.  
  3. В классе Rectangle:
  4.  
  5. 1. Измени методы getHeight и getWidth, чтобы они возвращали объекты типов HasHeight и HasWidth соответственно.
  6.  
  7. 2. Для этого внутри методов getHeight и getWidth создай локальные классы - реализации интерфейсов.
  8.  
  9. 3. Переименуй getHeight в castToHasHeight, getWidth в castToHasWidth (на имени метода нажми Shift+F6).
  10.  
  11. 4. Убери наследование интерфейсов в классе Rectangle.
  12.  
  13.  
  14.  
  15. P.S. Ожидается, что после внесения требуемых изменений, закомментированный код в методе станет рабочим и должен быть раскомментирован.
  16.  
  17.  
  18.  
  19.  
  20.  
  21. Требования:
  22.  
  23. 1. В класса Rectangle должен быть реализован метод castToHasHeight.
  24.  
  25. 2. В класса Rectangle должен быть реализован метод castToHasWidth.
  26.  
  27. 3. Метод castToHasHeight должен возвращать объект типа HasHeight.
  28.  
  29. 4. Метод castToHasWidth должен возвращать объект типа HasWidth.
  30.  
  31. 5. Объект возвращаемый методом castToHasHeight должен вычислять высоту, как разницу между y координатами.
  32.  
  33. 6. Объект возвращаемый методом castToHasWidth должен вычислять ширину, как разницу между x координатами.
  34.  
  35. 7. Класс Rectangle не должен реализовывать интерфейс HasHeight.
  36.  
  37. 8. Класс Rectangle не должен реализовывать интерфейс HasWidth.
  38.  
  39.  
  40. package com.javarush.task.task24.task2404;
  41.  
  42.  
  43. /*
  44. Рефакторинг Rectangle
  45. */
  46. public class Solution {
  47. public static void main(String[] args) {
  48. Rectangle rectangle = new Rectangle(1, 2, 3, 4);
  49. System.out.println(getHeight(rectangle.castToHasHeight()));
  50. System.out.println(getWidth(rectangle.castToHasWidth()));
  51. }
  52.  
  53. public static double getHeight(HasHeight rectangle) {
  54. return rectangle.getHeight();
  55. }
  56.  
  57. public static double getWidth(HasWidth rectangle) {
  58. return rectangle.getWidth();
  59. }
  60.  
  61.  
  62. public static class Rectangle {
  63. private Point point1;
  64. private Point point2;
  65.  
  66. public Rectangle(double x1, double y1, double x2, double y2) {
  67. point1 = new Point(x1, y1);
  68. point2 = new Point(x2, y2);
  69. }
  70.  
  71. public HasHeight castToHasHeight() {
  72. return new HasHeight() {
  73. @Override
  74. public double getHeight() {
  75. return Math.abs(point1.getY() - point2.getY());
  76. }
  77. };
  78. }
  79.  
  80. public HasWidth castToHasWidth() {
  81. return new HasWidth() {
  82. @Override
  83. public double getWidth() {
  84. return Math.abs(point1.getX() - point2.getX());
  85. }
  86. };
  87. }
  88. }
  89. }
Add Comment
Please, Sign In to add comment