构造函数名是aaa,错了忘了改过来了~~
解决方案 »
- JXTA管道通告搜索问题求助
- 求助:Java 如何分行读取txt里内容进行登入身份验证~!
- 求教多线程下载中的任务分发算法
- 求一正则表达式!急
- java学习交流群 16918020 欢迎大家参与.有经验的,70年代的优先,呵呵
- 在运行时出现类找不到的错误怎么解决?
- 在线等待!急!多谢!一个画图的程序,输入两个坐标值,以此为对角线顶点坐标做矩形。。。高手给看看。
- 各位,大侠,请问怎样可以实现自定义边框大小呀????(急,在线等)
- 不好意思:我下载个jbuilder6.bin文件,600多M,下完了。。。是不是Jbuilder6的安装程序?怎么打开呀?
- 这是为什么呢,帮看看
- JDialog绘制背景图片
- 有没有好的方案可以实现java界面的快速生成和重用?
double a;
double b;
aaa()
{
a=10;
b=5;
} public double add(){
return a+b;
}
public double sub(){
return a-b;
}
public double mul(){
return a*b;
}
public double shang(){
return a/b;
}
public static void main(String [] args){
aaa k=new aaa();
System.out.println("a+b = "+k.add());
System.out.println("a-b = "+k.sub());
System.out.println("a*b = "+k.mul());
System.out.println("a/b = "+k.shang());
}
}
調用時是"k."
是不是開始時class 定義成了"k",後來改成了"aaa",但調用的時候忘了改了,樓主也太馬虎了吧
double a;
double b;
aaa() //构造函数写错
{
a=10;
b=5;
} public double add(){
return a+b;
}
public double sub(){
return a-b;
}
public double mul(){
return a*b;
}
public double shang(){
return a/b;
}
public static void main(String [] args){
aaa k=new aaa(); //实例化k丢了
System.out.println("a+b = "+k.add());
System.out.println("a-b = "+k.sub());
System.out.println("a*b = "+k.mul());
System.out.println("a/b = "+k.shang());
}
}
这行也有错
否则会返回空值
private double a,b;
public void ch3_7(){
a=10;
b=5;
}
public double add(){
return a+b;
}
public double sub(){
return a-b;
}
public double mul(){
return a*b;
}
public double shang(){
return a/b;
}
public void main(String [] args){
aaa=new aaa(); 错了构造函数的名字呢??
System.out.println("a+b = "+k.add());
System.out.println("a-b = "+k.sub());
System.out.println("a*b = "+k.mul());
System.out.println("a/b = "+k.shang());
}
}
private double a,b;
public void ch3_7(){ //这一行是构造函数,构造函数的名字应该和类名字相同,否则
a=10; //系统默认你的构造函数
b=5;
}
public double add(){
return a+b;
}
public double sub(){
return a-b;
}
public double mul(){
return a*b;
}
public double shang(){
return a/b;
}
public void main(String [] args){
aaa=new aaa(); //少了k,所以出错了啊
System.out.println("a+b = "+k.add());
System.out.println("a-b = "+k.sub());
System.out.println("a*b = "+k.mul());
System.out.println("a/b = "+k.shang());
}
}
public class aaa{
private double a,b;
public void aaa(){
a=10;
b=5;
}
public double add(){
return a+b;
}
public double sub(){
return a-b;
}
public double mul(){
return a*b;
}
public double shang(){
return a/b;
}
public static void main(String [] args){
aaa k=new aaa();
System.out.println("a+b = "+k.add());
System.out.println("a-b = "+k.sub());
System.out.println("a*b = "+k.mul());
System.out.println("a/b = "+k.shang());
}
}
出来的结果是:
a+b=0.0
a-b=0.0
a*b=0.0
a/b=NaN
为什么会这样~??声明的同时不是应该自动调用构造函数的吗~??那应该a和b都赋值了啊??为什么还会是0呢??
因为你没有定义类aaa的构造函数.所以当你aaa k = new aaa();的时候,它调用的是默许的构造函数.
由于a,b是aaa的数据成员,所以是全局变量,double型的数据被默认赋为0.0,因此会出现你给的那种情况.
关键注意这句程序:public void aaa(){
a=10;
b=5;
}
它是定义一个普通的函数,而不是aaa的构造函数.
如果你改成:public aaa(){
a=10;
b=5;
}
就一切OK了:-)
因为你没有定义类aaa的构造函数.a,b没有值
或者你先aaa k = new aaa(),再k.ch3_7(),
k.add......;