Arkanium77

Box

Oct 2nd, 2016
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.20 KB | None | 0 0
  1. package boxmain;
  2. import java.awt.Color;
  3.  
  4.  
  5. /*
  6. По поводу класса цветных и взвешеных..
  7. Разве не правильно было бы наследовать StoreOfBoxes->Box->BoxWeight->ColorBox?
  8. Тогда ColorBox уже был бы взвешенным. Разве не по этому наследование только от одного родителя?
  9. Чтоб иерархия строгая и всё такое?
  10. Или нет? Или это просто потому, что учебная задача?
  11. */
  12.  
  13. /*
  14. А ещё, я так понимаю, что если бы каждый класс был отдельным файлом и был паблик,
  15. то проблем с наследованием вообще бы не было? Ну, кроме того, что в  BoxCW пришлось бы создать поле Color.
  16. Нам бы не пришлось дублировать все методы из класса покрашеных, мы могли бы их просто вызвать, верно?
  17. */
  18. abstract class StoreOfBoxes{ //Я думал про массив из коробок любого типа.
  19.     protected double width, height, depth;
  20.     //abstract void price();
  21. /*нам сказали, что класс становится абстрактным, если содержит абстрактный метод,
  22.     но, видимо, можно иметь абстрактный класс и без абстрактных методов.*/
  23. }
  24. public class Box extends StoreOfBoxes {
  25.         //protected double width, height, depth;
  26.    
  27.     Box (double a, double b, double c) {
  28.         width=a;
  29.         height=b;
  30.         depth=c;
  31.     }
  32.     Box (double a){
  33.         width=height=depth=a;
  34.     }
  35.     Box (Box ob){
  36.         width=ob.width;
  37.         height=ob.height;
  38.         depth=ob.depth;
  39.     }
  40.         Box () {
  41.         width=-1;
  42.         height=-1;
  43.         depth=-1;
  44.     }
  45.  
  46.     double volume(){
  47.             return width*height*depth;
  48.         }
  49.     boolean equalV(Box b){
  50.         if (this.volume()==b.volume()) return true;
  51.         else return false;
  52.     }
  53.  
  54. }
  55. class BoxWeight extends Box{
  56.     protected double weight;
  57.    
  58.     BoxWeight (double a, double b, double c, double w){
  59.         super (a,b,c);  //вызов конструктора суперкласса
  60.                      //д.б. первым оператором
  61.         weight=w;
  62.     }
  63.     BoxWeight (double a, double w){
  64.         super (a);
  65.         weight=w;
  66.     }
  67.     BoxWeight (Box a,int w){ //Это добавленный мной конструктор
  68.         super (a);
  69.         weight=w;
  70.     }
  71.     BoxWeight (double a){
  72.         super (a);
  73.         weight=0;
  74.     }
  75.     BoxWeight (){
  76.         super ();
  77.         weight=-1;
  78.     }
  79.     BoxWeight (BoxWeight ob){
  80.         super (ob);
  81.         weight=ob.weight;
  82.     }
  83.     boolean isEmpty(){
  84.         return weight==0;
  85.     }
  86.     boolean inBox(double a){
  87.         if (a>0){
  88.             this.weight+=a;
  89.             return true;
  90.         }
  91.         else {
  92.         return false;
  93.         }
  94.     }
  95.     boolean outBox(double a){
  96.         if (a>0&&a<=this.weight){
  97.             this.weight-=a;
  98.             return true;
  99.         }
  100.         else {
  101.         return false;
  102.         }
  103.     }
  104.     boolean equalW(BoxWeight b){
  105.         if (this.weight==b.weight) return true;
  106.         else return false;
  107.     }
  108. }
  109. class ColorBox extends Box{
  110.     protected Color color;  // Добавить пакет java.awt.Color;
  111.        
  112.    
  113.     ColorBox(double a, double b, double c, Color color){
  114.         super (a,b,c);
  115.         this.color=color;
  116.     }
  117.     ColorBox (double a, Color color){
  118.         super (a);
  119.         this.color=color;
  120.     }
  121.     ColorBox (double a){
  122.         super (a);
  123.         color=Color.black;
  124.     }
  125.     ColorBox (){
  126.         super ();
  127.         color=null;
  128.     }
  129.     boolean colorIt(Color c){
  130.         /*try{this.color=c;}
  131.         catch(RuntimeException e){
  132.             return false;
  133.         }
  134.         finally{return true;}
  135.         */
  136.         if(this.color==c){
  137.             return false;
  138.         }
  139.         else{
  140.             this.color=c;
  141.             return true;
  142.         }
  143.     }
  144.  
  145.     Color getColor(){ return color;}
  146. }
  147.  
  148. class BoxCW extends BoxWeight{
  149.     protected Color color;
  150.     BoxCW(double a, double b, double c,double w, Color color){
  151.     super (a,b,c,w);
  152.         this.color=color;
  153.     }
  154.     BoxCW (double a, Color color){
  155.         super (a);
  156.         this.color=color;
  157.     }
  158.     BoxCW (double a){
  159.         super (a);
  160.         color=Color.black;
  161.     }
  162.     BoxCW (){
  163.         super ();
  164.         color=null;
  165.     }
  166.     boolean colorIt(Color c){
  167.         /*try{this.color=c;}
  168.         catch(RuntimeException e){
  169.             return false;
  170.         }
  171.         finally{return true;}
  172.         */
  173.         if(this.color==c){
  174.             return false;
  175.         }
  176.         else{
  177.             this.color=c;
  178.             return true;
  179.         }
  180.     }
  181.  
  182.     Color getColor(){ return color;}
  183.    
  184.     public String toString(){
  185.         return "Параметры BoxCW:\nwidth="+this.width+"\nheight="+this.height+"\ndepth="+this.depth+"\nweight="+this.weight+"\ncolor="+this.color;
  186.     }
  187.  
  188. }
Advertisement
Add Comment
Please, Sign In to add comment