小小小程序,帮我查查哪里错了好吗?? 构造函数名是aaa,错了忘了改过来了~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.io.*;public class 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(); 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()); }} new "aaa"調用時是"k."是不是開始時class 定義成了"k",後來改成了"aaa",但調用的時候忘了改了,樓主也太馬虎了吧 import java.io.*;public class 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()); }} aaa=new aaa();这行有错,请再改正一下吧,楼主 public void main(String [] args)这行也有错 还有在构造函数前不要加上void 否则会返回空值 public class aaa{ 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()); }} public class aaa{ 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()); }} 哦,错了,好像不需要delete了... 改后的程序: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.0a-b=0.0a*b=0.0a/b=NaN 为什么会这样~??声明的同时不是应该自动调用构造函数的吗~??那应该a和b都赋值了啊??为什么还会是0呢?? TO:fishfish__flying(fishfish__flying) 因为你没有定义类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=new aaa();没有对象,所有出现异常.因为你没有定义类aaa的构造函数.a,b没有值或者你先aaa k = new aaa(),再k.ch3_7(),k.add......; 接口可以被new吗 JAVA 初级问题 (彩票问题) querydataset怎样修改一条属性的某一个字段?在线等!! 大虾门帮我看看怎么回事 寻求log4g和错误处理的结合的方法或者思路 读取网络文件问题 小弟刚入此行!高分求一些解决方案!! 请教高手treemap的问题,他排序的并不是按照自然顺序大大小排列的,怎么办? 哪裡有將程序製作成安裝版的軟件下載 请问如何连接到(局域网)210.32.25.1上SqlServer的mytest数据库? 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......;