一个java的小问题,刚刚学java不久,问的问题可能有点白痴,各位帮帮忙
public class Circle {
private int radius;
public Circle(int r){
radius=r;
}
public double getArea(){
return Math.PI*Math.pow(radius, 2);
}
public class Cylinder {
private Circle circle;
private int height;
public Cylinder(int r,int h){
Circle circle=new Circle(r);
height=h;
}
public double getVolume(){
return Math.PI*Math.pow(radius, 2)*height;
}
}
}
public class Test {
public static void main(String[] args) {
Cylinder c1=new Cylinder(5,5);//为什么这样不行??
System.out.println();
}
}
Circle circle=new Circle(r);
circle=new Circle(r);
private Circle circle;
package com.briup.test08;
public class Test {
public static void main(String[] args) {
//Cylinder c1=new Cylinder(5,5););//为什么这样不行??
//是可以的,改成下面这样就行了
Circle c =new Circle(5);
Circle.Cylinder cy=c.new Cylinder(5,5);
}
}
[其他解释]
你必须先声明外面这个类的对象,才能生成里面这个类的对象啊,Circle c =new Circle();或者为这个类增加个无参数构造器
[其他解释]
java的内部类创建对象的话,必须先创建外部类对象,然后外部类点取内部类对象。