ورود

View Full Version : سوال: طرز استفاده از class ها ؟



qweewq22
پنج شنبه 08 اردیبهشت 1390, 16:54 عصر
سلام خدمت اساتید گرامی
من یک تیکه کد دارم ولی نمی دونم چیکار کرده و یه لطفی بکنین در مورد قسمت های *** یه توضیح کاملی بدین _ مرسی


class box{
private double width,height,depth;
***box(box ob){
width=ob.width;
height=ob.height;
depth=ob.depth;

}
***box(double w,double h,double d){
width=w;
height=h;
depth=d;

}

***box(){
width=-1; //use -1 to indicate
height=-1; //an unitialized
depth=-1; // box
}
***box(double len){
width=height=depth=len;

}
double volume(){
return width*height*depth;
}
}


class box2 extends box{
double weight;

***box2(box2 ob){
super(ob);
weight=ob.weight;
}
**8box2(double w,double h,double d,double m){
***super(w,h,d);
weight=m;
}

***box2(){
***super();
weight=-1;

}
***box2(double m,double len){
***super(len);
weight=m;
}
}

Pouri_sb
پنج شنبه 08 اردیبهشت 1390, 20:52 عصر
سلام خدمت اساتید گرامی
من یک تیکه کد دارم ولی نمی دونم چیکار کرده و یه لطفی بکنین در مورد قسمت های *** یه توضیح کاملی بدین _ مرسی


class box{
private double width,height,depth;
***box(box ob){
width=ob.width;
height=ob.height;
depth=ob.depth;

}
این یه کانستراکتوره با یک متغیر از نوع box بهتره بری توضیح سازندههارو بخونی
***box(double w,double h,double d){
width=w;
height=h;
depth=d;

}
این یکی یه کاستراکتور با سه متغیر از نوع دابله
***box(){
width=-1; //use -1 to indicate
height=-1; //an unitialized
depth=-1; // box
}
***box(double len){
width=height=depth=len;

}
double volume(){
return width*height*depth;
}
}


class box2 extends box{
double weight;

***box2(box2 ob){
super(ob);
weight=ob.weight;
}
**8box2(double w,double h,double d,double m){
***super(w,h,d);
weight=m;
}

***box2(){
***super();
weight=-1;

}
***box2(double m,double len){
***super(len);
weight=m;
}
}



وقتی میای تو کلاس main دستوراتت رو می نویسی می خوای که یه شی از نوع کلاست بسازی برای ساختن این طوری عمل می کنیم دیگه:
box objectBox=new box(?)
حالا اگه به جای علامت سوال من بیام یه متغیر از نوعه باکس قرار بدم میاد تابع سازنده اولیت رو فراخونی می کنه، اگه سه تا عدد دابل بزارم میاد سازنده دومی رو فراخونی میکنه.
.................................................. .....................................
حالا قسمت اکستندز کردن:
با کلمه کلیدی super می تونیم به تابع های سازنده کلاس مادر دسترسی پیدا کنیم، مثلا اگه این دستور رو بنویسیم:
super(a,b,c)// a & b & c are defined as double میاد سازنده دوم تابع مادر رو فراخونی می کنه