黑马程序员技术交流社区
标题:
在构造s1 s2时不成功,有什么办法解决呀?<已解决>
[打印本页]
作者:
付信榕
时间:
2012-5-22 15:22
标题:
在构造s1 s2时不成功,有什么办法解决呀?<已解决>
本帖最后由 付信榕 于 2012-6-13 10:31 编辑
class Score
{
private int x,y;
public void Score (int x,int y )
{
this.x=x;
this.y=y;
}
public int mult()
{
return x*y;
}
public static void main(String[] args)
{
Score s1=new Score(3,3);
Score s2=new Score(2,3);
System.out.println(s1.mult());
System.out.println(s2.mult());
}
}
在构造s1 s2时不成功,有什么办法解决呀?
dos命令显示如下:
I:\EditPlus>javac Score.java
Score.java:17: 错误: 无法将类 Score中的构造器 Score应用到给定类型;
Score s1=new Score(3,3);
^
需要: 没有参数
找到: int,int
原因: 实际参数列表和形式参数列表长度不同
Score.java:18: 错误: 无法将类 Score中的构造器 Score应用到给定类型;
Score s2=new Score(2,3);
^
需要: 没有参数
找到: int,int
原因: 实际参数列表和形式参数列表长度不同
2 个错误
作者:
蒋映辉
时间:
2012-5-22 15:26
public void Score (int x,int y )
构造函数 不要类型申明
public Score(int x,int y){}
你的那种写法 不是构造函数 ,系统自动添加了无参构造函数 于是乎你的那个建立对象的就错了
class Score
{
private int x,y;
public Score (int x,int y )
{
this.x=x;
this.y=y;
}
public int mult()
{
return x*y;
}
public static void main(String[] args)
{
Score s1=new Score(3,3);
Score s2=new Score(2,3);
System.out.println(s1.mult());
System.out.println(s2.mult());
}
}
作者:
黑马-李勇
时间:
2012-5-22 15:27
把主函数单独拿出来,别放在Score 里试试
作者:
李文富
时间:
2012-5-22 15:39
本帖最后由 李文富 于 2012-5-22 15:41 编辑
package cn.lwf.test;
class Score
{
private int x,y;
public Score (int x,int y )
{
this.x=x;
this.y=y;
}
public int mult()
{
return x*y;
}
public static void main(String[] args)
{
Score s1=new Score(3,3);
Score s2=new Score(2,3);
System.out.println(s1.mult());
System.out.println(s2.mult());
}
}
将此处出现的void 删除,构造器是没有返回值的
作者:
龚正军
时间:
2012-5-22 16:16
本帖最后由 龚正军 于 2012-5-22 16:20 编辑
class Score
{
private int x,y;
public void Score (int x,int y )---------------------------------------
构造函数是不能有返回值的,void代表的是空返回值,是默认有retrun的,也就是有“空”的返回值的,所以你的构造函数不可能成功,完全误!!
{
再说点:关于构造函数前的public修饰符也不需要写,(写没错,但是没有返回值public修饰你觉得有意义么??)构造函数的范围修饰是跟随class前的限定而限定的,如果public clss Score
那么Score(){}构造函数也必定是public.---------------------------所以构造函数前你不需要去写public。
最后:你去掉该句public void这两个修饰,你的代码就正确了!(你不去掉public也不会错,但最好去掉)
this.x=x;
this.y=y;
}
public int mult()
{
return x*y;
}
public static void main(String[] args)
{
Score s1=new Score(3,3);
Score s2=new Score(2,3);
System.out.println(s1.mult());
System.out.println(s2.mult());
}
}
作者:
余宏
时间:
2012-5-22 16:17
package com.itcast.test;
class Score
{
private int x,y;
public Score (int x,int y )//构造函数不需要返回值类型
{
this.x=x;
this.y=y;
}
public int mult()
{
return x*y;
}
public static void main(String[] args)
{
Score s1=new Score(3,3);
Score s2=new Score(2,3);
System.out.println(s1.mult());
System.out.println(s2.mult());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2