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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 透过生活 高级黑马   /  2014-1-25 18:48  /  1287 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 透过生活 于 2014-2-16 18:46 编辑

我看教程敲的代码,怎么有错误呢。教程上没有呀。求答案。。


class NoValException extends RuntimeException{
void NoValExcetption(String message){
  super(message);//这里有错误
}
}

interface Shape{
void getArea();
}
class Rec implements Shape{
private double len,wid;
Rec(double len,double wid)throws NoValException{
  if(len<=0||wid<=0){
   throw new NoValException("非法值传入");这里有错误
  }
   this.len = len;
   this.wid = wid;
  }
public void getArea(){
  System.out.println("面积:"+len*wid);
}
}
class Cir implements Shape{
public static final double PI = 3.14;
private double r;
Cir(double r){
  if(r<=0)
   throw new NoValException();
  this.r= r;
}
public void getArea(){
  System.out.println(" 面积:"+r*r*PI);
}
}
public class ExceptionTest {
public static void main(String args []){
  try{
   Rec r = new Rec(1,1);
   //Cir  c = new Cir(2);
   r.getArea();
  }catch(NoValException e){
   System.out.println(e.toString());
  }
  
}
}

捕获.PNG (19.46 KB, 下载次数: 18)

捕获.PNG

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

4 个回复

倒序浏览
class NoValException extends RuntimeException{
        //<-----这里你必须报错,构造函数的格式不对------>
        //你可以加修饰也可以不加
        /*
        你应该这么写:
        public NoValException(String message)
        {
                super(message);
        }
       
        */
        void NoValExcetption(String message){
          super(message);//这里有错误
        }
}
另外建议楼主还是先别用eclipse这种高级集成开发环境,editplus比较适合初学者

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
二楼说的对
1、构造函数是没有返回值也没有返回类型的,构造函数由修饰符,方法名,参数,方法体组成。
2、建议楼主回去看看面向对象里面构造函数的视频,多充充电。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
<<Think in java>> 中说:"构造函数是一种很特殊的函数,因为他没有返回值。这和‘返回值为void’有极大的差别。返回void时,一般函数并不返回任何东西,但是一般的函数能够选择是否要返回些什么东西。构造函数则绝对不返回任何东西,而且你也没有任何选择。如果它有一个返回值,而且你有权利选择你自己的返回型别(return type),编译器势必得通过某种方式来知道如何处理那个返回值。"
构造函数没有去掉void,,,,,,,,,再就是构造函数名多打了个字母"t",以上导致(本没有错误的)第二处报错,而实际有错误的下面一处却没报错,
Cir(double r){
  if(r<=0)
   throw new NoValException();//构造函数有String类型参数,而此处没有传参数,需要传个String类型参数
  this.r= r;
}
回复 使用道具 举报
咸鱼 发表于 2014-1-26 23:23
中说:"构造函数是一种很特殊的函数,因为他没有返回值。这和‘返回值为void’有极大的差别。返回void时, ...

前期的确是用editplus,不用eclipse要好得多,用editplus手指动得多,代码都手打也好熟悉代码,,,,然后就是打错机会大些,也就是改错次数多些,改得多就学得多嘛,学习就是在一次次改错中来学习。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马