Advertisement
MKbear

JavaW3

Sep 7th, 2021
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.38 KB | None | 0 0
  1. package com.work;
  2.  
  3. public abstract class Shape {
  4.     protected String color;
  5.     protected boolean filled;
  6.  
  7.     public Shape(){
  8.     }
  9.     public Shape(String color, boolean filled){
  10.         setColor(color);
  11.         setFilled(filled);
  12.     }
  13.     public String getColor(){
  14.         return color;
  15.     }
  16.     public void setColor(String color){
  17.         this.color = color;
  18.     }
  19.     public boolean isFilled(){
  20.         return filled;
  21.     }
  22.     public void setFilled(boolean filled){
  23.         this.filled = filled;
  24.     }
  25.  
  26.     public abstract double getArea();
  27.     public abstract double getPerimeter();
  28.     public abstract String ToString();
  29. }
  30. /////////////////////////////////////////////////////////////////////////////////
  31.  
  32. package com.work;
  33.  
  34. public class Circle extends Shape{
  35.     protected double radius;
  36.  
  37.     public Circle(){}
  38.     public Circle(double radius){
  39.         super();
  40.         setRadius(radius);
  41.     }
  42.     public Circle(double radius, String color, boolean filled){
  43.         super(color, filled);
  44.         setRadius(radius);
  45.     }
  46.     public double getRadius(){
  47.         return radius;
  48.     }
  49.     public void setRadius(double radius) {
  50.         this.radius = radius;
  51.     }
  52.  
  53.     @Override
  54.     public double getArea() {
  55.         return Math.PI * radius * radius;
  56.     }
  57.  
  58.     @Override
  59.     public double getPerimeter() {
  60.         return 2 * Math.PI * radius;
  61.     }
  62.  
  63.     @Override
  64.     public String ToString() {
  65.         return "Radius: " + radius + "\n" + "Area: " + this.getArea() + "\n" + "Perimeter: " + this.getPerimeter();
  66.     }
  67. }
  68. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  69.  
  70. package com.work;
  71.  
  72. public class Rectangle extends Shape{
  73.     protected double width;
  74.     protected double length;
  75.  
  76.     public Rectangle(){
  77.  
  78.     }
  79.     public Rectangle(double width, double length){
  80.         setWidth(width);
  81.         setLength(length);
  82.     }
  83.     public Rectangle(double width, double length,  String color, boolean filled){
  84.         super(color, filled);
  85.         setWidth(width);
  86.         setLength(length);
  87.     }
  88.     public double getWidth(){
  89.         return width;
  90.     }
  91.     public void setWidth(double width) {
  92.         this.width = width;
  93.     }
  94.     public double getLength(){
  95.         return length;
  96.     }
  97.     public void setLength(double length){
  98.         this.length = length;
  99.     }
  100.  
  101.     @Override
  102.     public double getArea() {
  103.         return width * length;
  104.     }
  105.  
  106.     @Override
  107.     public double getPerimeter() {
  108.         return 2 * (width + length);
  109.     }
  110.  
  111.     @Override
  112.     public String ToString() {
  113.         return "Width: " + this.getWidth() + "\n" + "Length: " + this.getLength() + "\n" + "Area: " + this.getArea() + "\n" + "Perimeter: " + this.getPerimeter();
  114.     }
  115. }
  116.  
  117. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  118.  
  119. package com.work;
  120.  
  121. public class Square extends Rectangle{
  122.     protected double side;
  123.  
  124.     public Square(){}
  125.     public Square(double side){
  126.         super(side, side);
  127.     }
  128.     public Square(double side, String color, boolean filled){
  129.         super(side, side, color, filled);
  130.     }
  131.     public double getSide(){
  132.         return length;
  133.     }
  134.     public void setSide(double side){
  135.         length = side;
  136.         width = side;
  137.     }
  138.  
  139.     @Override
  140.     public void setWidth(double side) {
  141.         setSide(side);
  142.     }
  143.  
  144.     @Override
  145.     public void setLength(double side) {
  146.         setSide(side);
  147.     }
  148.  
  149.     @Override
  150.     public String ToString() {
  151.         return "Side: " + this.getSide() + "\n" + "Area: " + this.getArea() + "\n" + "Perimeter: " + this.getPerimeter();
  152.     }
  153. }
  154. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  155.  
  156. package com.work;
  157.  
  158. public class Main {
  159.     public static void main(String[] args) {
  160.         Shape s1 = new Circle(5.5, "RED", false);
  161.         System.out.println(s1);
  162.         System.out.println(s1.getArea());
  163.         System.out.println(s1.getPerimeter());
  164.         System.out.println(s1.getColor());
  165.         System.out.println(s1.isFilled());
  166.         System.out.println(s1.ToString());
  167.         // Ошибка: у класса Shape нет метода getRadius()
  168.         //System.out.println(s1.getRadius());
  169.         Circle c1 = (Circle)s1;
  170.         System.out.println(c1);
  171.         System.out.println(c1.getArea());
  172.         System.out.println(c1.getPerimeter());
  173.         System.out.println(c1.getColor());
  174.         System.out.println(c1.isFilled());
  175.         // у класса Circle есть метод getRadius()
  176.         System.out.println(c1.getRadius());
  177.         // Ошибка: нельзя создать экземпляр абстрактного класса
  178.         //Shape s2 = new Shape();
  179.         Shape s3 = new Rectangle(1.0, 2.0, "RED", false);
  180.         System.out.println(s3);
  181.         System.out.println(s3.getArea());
  182.         System.out.println(s3.getPerimeter());
  183.         System.out.println(s3.getColor());
  184.         // Ошибка: у класса Shape не метода getLength()
  185.         //System.out.println(s3.getLength());
  186.         Rectangle r1 = (Rectangle)s3;
  187.         System.out.println(r1);
  188.         System.out.println(r1.getArea());
  189.         System.out.println(r1.getColor());
  190.         // у класса Rectangle есть метод getLength()
  191.         System.out.println(r1.getLength());
  192.         Shape s4 = new Square(6.6, "blue",true );
  193.         System.out.println(s4);
  194.         System.out.println(s4.getArea());
  195.         System.out.println(s4.getColor());
  196.         // Ошибка: у класса Shape нет метода getSide()
  197.         //System.out.println(s4.getSide());
  198.         Rectangle r2 = (Rectangle)s4;
  199.         System.out.println(r2);
  200.         System.out.println(r2.getArea());
  201.         System.out.println(r2.getColor());
  202.         // Ошибка: у класса Rectangle тоже нет метода getSide()
  203.         //System.out.println(r2.getSide());
  204.         System.out.println(r2.getLength());
  205.         Square sq1 = (Square)r2;
  206.         System.out.println(sq1);
  207.         System.out.println(sq1.getArea());
  208.         System.out.println(sq1.getColor());
  209.         // у класса Square есть метод getSide()
  210.         System.out.println(sq1.getSide());
  211.         System.out.println(sq1.getLength());
  212.     }
  213. }
  214.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement