package ex;
class circle{
double radius,area;
void setradius(double r) {
radius=r;
}
double getradius() {
return radius;
}
double getarea() {
area=3.14*radius*radius;
return area;
}
}
class circular{
circle bottom;
double height;
void setbottom(circle c) {
bottom=c;
}
void setheight(double h) {
height=h;
}
double getvolme() {
if(bottom==null) {
return -1;
}
else {
return bottom.getarea()*height/3.0;
}
}
double getbottomradius() {
return bottom.getradius();
}
void setbottomradius(double r) {
bottom.setradius(r);
}
}
class circle{
double radius,area;
void setradius(double r) {
radius=r;
}
double getradius() {
return radius;
}
double getarea() {
area=3.14*radius*radius;
return area;
}
}
class circular{
circle bottom;
double height;
void setbottom(circle c) {
bottom=c;
}
void setheight(double h) {
height=h;
}
double getvolme() {
if(bottom==null) {
return -1;
}
else {
return bottom.getarea()*height/3.0;
}
}
double getbottomradius() {
return bottom.getradius();
}
void setbottomradius(double r) {
bottom.setradius(r);
}
}
public class WADE {
public static void main (String args[]) {
circle circle=new circle();
circle.setradius(10);
circular circular=new circular();
System.out.println("circle的引用:"+circle);
System.out.println("圆锥的bottom的引用:"+circular.bottom);
circular.setheight(5);
circular.setbottom(circle);
System.out.println("circle的引用:"+circle);
System.out.println("圆锥的bottom的引用:"+circular.bottom);
System.out.println("圆锥的体积:"+circular.getvolme());
System.out.println("修改circle的半径,bottom的半径同样变化");
circle.setradius(20);
System.out.println("bottom的半径:"+circular.getbottomradius());
System.out.println("重新创建circle,circle的引用将发生变化");
circle=new circle();
System.out.println("circle的引用:"+circle);
System.out.println("但是不影响circular的bottom的引用");
System.out.println("圆锥的bottom的引用:"+circular.bottom);
}
public static void main (String args[]) {
circle circle=new circle();
circle.setradius(10);
circular circular=new circular();
System.out.println("circle的引用:"+circle);
System.out.println("圆锥的bottom的引用:"+circular.bottom);
circular.setheight(5);
circular.setbottom(circle);
System.out.println("circle的引用:"+circle);
System.out.println("圆锥的bottom的引用:"+circular.bottom);
System.out.println("圆锥的体积:"+circular.getvolme());
System.out.println("修改circle的半径,bottom的半径同样变化");
circle.setradius(20);
System.out.println("bottom的半径:"+circular.getbottomradius());
System.out.println("重新创建circle,circle的引用将发生变化");
circle=new circle();
System.out.println("circle的引用:"+circle);
System.out.println("但是不影响circular的bottom的引用");
System.out.println("圆锥的bottom的引用:"+circular.bottom);
}
}