java中的面向对象-类和对象-类的构造方法,该如何处理

java中的面向对象-类和对象-类的构造方法
我是一个java初学者我想请教一下下面这个程序应该怎么改才行?
public class Spere
{
double r,s,l;
Spere(double R)
{
r=R;
}
double countlength()
{
l=Math.PI*2*r;
return l;
}
double countarea()
{
s=Math.PI*r*r;
return s;
}
double setR(double h)
{
r=h;
return r;
}
public void main(String[]args)
{
Spere s1=new Spere();
Spere(3.0);

  System.out.println("半径为3.0的圆周长为:"+countlength());
  System.out.println("半径为3.0的圆面积为:"+countarea());

  setR(5.0);

  System.out.println("半径为5.0的圆周长为:"+countlength());
  System.out.println("半径为5.0的圆面积为:"+countarea());
}
}

------解决方案--------------------
Spere s1=new Spere();
Spere(3.0);

这里的问题,你想使用带参构造的话 必须先自己写出默认构造public Spere() {}。在Spere(double R)方法前面增加一个public Spere() {}就行了。
------解决方案--------------------
Java code

public class Spere
{
double r,s,l;
public Spere(double R)
{
r=R;
}
public double countlength()
{
l=Math.PI*2*r;
return l;
}
public double countarea()
{
s=Math.PI*r*r;
return s; 
}
public double setR(double h)
{
r=h;
return r;
}
public static void main(String[]args)  //这里写错 ,java的main应该是static的
{
Spere s1=new Spere(3.0);

  System.out.println("半径为3.0的圆周长为:"+s1.countlength());//由于countlength未定义为static,所以需要加上s1 
  System.out.println("半径为3.0的圆面积为:"+s1.countarea());

  s1.setR(5.0);//由于setR未定义为static,所以需要加上s1 

  System.out.println("半径为5.0的圆周长为:"+s1.countlength());
  System.out.println("半径为5.0的圆面积为:"+s1.countarea());
}
}

------解决方案--------------------
构造方法出错了
2楼+1.
------解决方案--------------------
直接 Spere s1=new Spere(3.0);就可以了,因为你自己写了一个构造方法所以,原来默认隐藏的无参工造方法就没有了,所以直接要求传参,一般标准是,有一个无参构造方法,一个有全部的参数的工造方法。
------解决方案--------------------
哥们儿们有没有和我一样想学习JAVA的,最近我在私塾在线上看了很多经典的、很不错的关于JAVA的视频,如果遇到看不明白的地方,可以在他们论坛上讨论,他们的老师会上去解答。前几天我看到他们在搞个新的活动,”远程学习+地面冲刺=高薪就业“,远程学习一共252个小时,价格确实很诱人,单人报名是1200,团报是1000,虽说团报价格差不了多少,但是自己学太枯燥,想找朋友们一起学习,这样不仅可以相互学习,还可以互相交流交流嘛。你们也可以先去JAVA私塾上面了解了解,然后去看看他们的视频,觉得可以的话可以加我一起团报,我的QQ:1477861213
------解决方案--------------------
探讨

大家帮忙看看这个程序应该怎样改才行?


public class Bank
{
String name;//户主姓名
String accountNumber;//账号
String cipher;//密码
double balance;//余额

Bank(String n,String a,String c,double b)
{
nam……

------解决方案--------------------
B=new Bank("张三","11000123","123456",5000.0);
------解决方案--------------------
我运行了一下,发现你的构造方法出了错,也就是下面这两行

Spere s1 = new Spere();
Spere(3.0);


java的机制是,如果程序员没有为类定义一个构造方法,那么系统会自动为你添加一个无参的构造方法。但是因为你自己定义了带参数的构造方法,所以系统就不再帮你定义了,所以Spere s1 = new Spere();
是会出错的。

改进方法:Spere s1 = new Spere(3.0);
这样就行,希望对你有帮助

------解决方案--------------------
Bank(String n,String a,String c,double b)
B=new Bank("张三","11000123","123456","5000.0");
创建Bank对象的时候参数“5000.0”应该与构造方法对应,所以要改成double类型的参数,“5000.0”是字符串.
 
------解决方案--------------------
构造函数有错误啊…你想使用哪种方式构造对象,就必须有相应的构造函数。
而且记得最好都把默认的构造函数加上(即没有参赛的构造函数)