import java.util.Scanner;
public class Circle {
private double r;
public void setR(double R){
r=R;
}
public double getR(){
return r;
}
public double area(double r){
return Math.PI*r*r;
}
public double peri(double r){
return 2*Math.PI*r;
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入圆的半径:");
double a=in.nextDouble();
Circle cir1=new Circle();
cir1.setR(a);
System.out.println("圆的半径为:"+cir1.getR());
System.out.println("圆的面积为:"+cir1.area(a));
System.out.println("圆的周长为:"+cir1.peri(a));
}
}
在 main 函数中实现:
 A)屏幕中输入半径,先保存到一个局部变量中
 B)用无参 Constructor 生成 Circle 对象,对象变量是 cir1;并调用 setR 来设置 cir1 的半 径(上面屏幕输入的值),再输出 cir1 的 r、面积、周长; 
C)用有参 Constructor 生成 Circle 对象,对象变量是 cir2,cir2 的半径在对象生成的时 候用有参 Constructor 初始化(上面屏幕输入的值),输出 cir2 的 r、面积、周长。
请问怎么B、C的用无(有)参生成Circle对象是什么意思?需要怎么修改?谢谢

解决方案 »

  1.   

    这个Java基础知识翻番书本就找到啦
      

  2.   

    Circle cir1=new Circle(); 无参   
    Circle cir1=new Circle(a);有参无参构造器
    public Cricle(){}有参构造器
    public Cricle(double a){
    this.r=a;
    }
      

  3.   

    package demo;import java.util.Scanner;public class Circle {
    private double r; //无参构造器
    public Circle() {

    }
    //有参构造器
    public Circle(double R){
    r= R;
    }


    public void setR(double R) {
    r = R;
    } public double getR() {
    return r;
    } public double area(double r) {
    return Math.PI * r * r;
    } public double peri(double r) {
    return 2 * Math.PI * r;
    } public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("请输入圆的半径:");
    double a = in.nextDouble();
    Circle cir1 = new Circle(); //用无参 Constructor 生成 Circle 对象
    Circle cir2 = new Circle(3.0); //用有参 Constructor 生成 Circle 对象
    cir1.setR(a);
    System.out.println("圆的半径为:" + cir1.getR());
    System.out.println("圆的面积为:" + cir1.area(a));
    System.out.println("圆的周长为:" + cir1.peri(a));
    }
    }
      

  4.   

    你的代码不全,在Circle类中增加两个构造器:(1)无参构造器:public Circle(){}(2)有参构造器:public Circle(double R){ this.r=R;}。 这样你就应该明白了。在main中Circle c=new Circle();这是调用无参构造器对对象初始化。如果Circle c=new Circle(R);这是调用有参构造器对对象进行初始化。