A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 付信榕 于 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 个错误

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
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());
        }
}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
把主函数单独拿出来,别放在Score 里试试
回复 使用道具 举报
本帖最后由 李文富 于 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: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());
        }
}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
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());
         }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马