Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package boxmain;
- import java.awt.Color;
- /*
- По поводу класса цветных и взвешеных..
- Разве не правильно было бы наследовать StoreOfBoxes->Box->BoxWeight->ColorBox?
- Тогда ColorBox уже был бы взвешенным. Разве не по этому наследование только от одного родителя?
- Чтоб иерархия строгая и всё такое?
- Или нет? Или это просто потому, что учебная задача?
- */
- /*
- А ещё, я так понимаю, что если бы каждый класс был отдельным файлом и был паблик,
- то проблем с наследованием вообще бы не было? Ну, кроме того, что в BoxCW пришлось бы создать поле Color.
- Нам бы не пришлось дублировать все методы из класса покрашеных, мы могли бы их просто вызвать, верно?
- */
- abstract class StoreOfBoxes{ //Я думал про массив из коробок любого типа.
- protected double width, height, depth;
- //abstract void price();
- /*нам сказали, что класс становится абстрактным, если содержит абстрактный метод,
- но, видимо, можно иметь абстрактный класс и без абстрактных методов.*/
- }
- public class Box extends StoreOfBoxes {
- //protected double width, height, depth;
- Box (double a, double b, double c) {
- width=a;
- height=b;
- depth=c;
- }
- Box (double a){
- width=height=depth=a;
- }
- Box (Box ob){
- width=ob.width;
- height=ob.height;
- depth=ob.depth;
- }
- Box () {
- width=-1;
- height=-1;
- depth=-1;
- }
- double volume(){
- return width*height*depth;
- }
- boolean equalV(Box b){
- if (this.volume()==b.volume()) return true;
- else return false;
- }
- }
- class BoxWeight extends Box{
- protected double weight;
- BoxWeight (double a, double b, double c, double w){
- super (a,b,c); //вызов конструктора суперкласса
- //д.б. первым оператором
- weight=w;
- }
- BoxWeight (double a, double w){
- super (a);
- weight=w;
- }
- BoxWeight (Box a,int w){ //Это добавленный мной конструктор
- super (a);
- weight=w;
- }
- BoxWeight (double a){
- super (a);
- weight=0;
- }
- BoxWeight (){
- super ();
- weight=-1;
- }
- BoxWeight (BoxWeight ob){
- super (ob);
- weight=ob.weight;
- }
- boolean isEmpty(){
- return weight==0;
- }
- boolean inBox(double a){
- if (a>0){
- this.weight+=a;
- return true;
- }
- else {
- return false;
- }
- }
- boolean outBox(double a){
- if (a>0&&a<=this.weight){
- this.weight-=a;
- return true;
- }
- else {
- return false;
- }
- }
- boolean equalW(BoxWeight b){
- if (this.weight==b.weight) return true;
- else return false;
- }
- }
- class ColorBox extends Box{
- protected Color color; // Добавить пакет java.awt.Color;
- ColorBox(double a, double b, double c, Color color){
- super (a,b,c);
- this.color=color;
- }
- ColorBox (double a, Color color){
- super (a);
- this.color=color;
- }
- ColorBox (double a){
- super (a);
- color=Color.black;
- }
- ColorBox (){
- super ();
- color=null;
- }
- boolean colorIt(Color c){
- /*try{this.color=c;}
- catch(RuntimeException e){
- return false;
- }
- finally{return true;}
- */
- if(this.color==c){
- return false;
- }
- else{
- this.color=c;
- return true;
- }
- }
- Color getColor(){ return color;}
- }
- class BoxCW extends BoxWeight{
- protected Color color;
- BoxCW(double a, double b, double c,double w, Color color){
- super (a,b,c,w);
- this.color=color;
- }
- BoxCW (double a, Color color){
- super (a);
- this.color=color;
- }
- BoxCW (double a){
- super (a);
- color=Color.black;
- }
- BoxCW (){
- super ();
- color=null;
- }
- boolean colorIt(Color c){
- /*try{this.color=c;}
- catch(RuntimeException e){
- return false;
- }
- finally{return true;}
- */
- if(this.color==c){
- return false;
- }
- else{
- this.color=c;
- return true;
- }
- }
- Color getColor(){ return color;}
- public String toString(){
- return "Параметры BoxCW:\nwidth="+this.width+"\nheight="+this.height+"\ndepth="+this.depth+"\nweight="+this.weight+"\ncolor="+this.color;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment