| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 788 人关注过本帖
标题:小弟有道题看不太明白,求大神指导
只看楼主 加入收藏
FYWily
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-26
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
小弟有道题看不太明白,求大神指导
设计一个名为MyInteger的类。这个类包括:
·一个名为value的int型数据域,存储这个对象表示的int值。
·一个为指定的int值创建MyInteger对象的构造方法。
·一个返回int值的get方法。
·如果值分别为偶数、奇数或素数,那么isEven()、isOdd()和isPrime()方法都会返回true。
·如果指定值分别为偶数、奇数或素数,那么isEven(int)、isOdd(int)和isPrime(int)方法都会返回true。
·如果指定值分别为偶数、奇数或素数,那么isEven(MyInteger)、isOdd(MyInteger)和isPrime(MyInteger)方法都会返回true。
·如果该对象的值与指定的值相等,那么equals(int)和equals(MyInteger)方法返回true。
·静态方法parseInt(char[])将数字字符构成的数组转换为一个int值。
·静态方法parseInt(String)将一个字符串转换为一个int值。
实现这个类,编写客户程序测试这个类中所有的方法
##########################################################################
麻烦说具体一点,最好能给一个框架给我,谢谢啊大神

2013-11-16 12:37
琢石成器
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:36
专家分:160
注 册:2013-11-10
收藏
得分:10 
不知道理解的意思对不对,另外
public static int parseInt(char[] c){
    ……

老是出错,顺便请高手分析一下,到底错在哪里?
顺便把运行结果,以及抛出的异常也贴上来:

mInt.get()=3
nInt.get()=4
mInt.value不是偶数!
mInt.value是奇数!
mInt.value是素数!
4是偶数!
4不是奇数!
4不是素数!
nInt.value是偶数!
nInt.value不是奇数!
nInt.value不是素数!
3!=4
4=4
3!=4
java.lang.NumberFormatException: For input string: "???"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.valueOf(Unknown Source)
    at test.MyInteger.parseInt(
TestMyInteger.java:120)
    at test.TestMyInteger.main(
TestMyInteger.java:211)
c=0,s=12345

下面是原代码:
package test;

class MyInteger{
   
    int value;
   
    public MyInteger(int n){
        
        this.value=n;
        
    }
   
    public int get(){
        
        return value;
    }
   
    //*******************
    public boolean isEven(){
        
        if(this.value%2==0){
            return true;
        }
        return false;
    }
   
    public boolean isOdd(){
        
        if(this.value%2==1){
            return true;
        }
        return false;
    }
   
    public boolean isPrime(){
        
        for(int i=2;i<=(int)Math.sqrt(this.value);i++){
            if(this.value%i==0){
                return false;
            }   
        }
        return true;
    }
   
   
    //********************
    public boolean isEven(int n){
        
        if(n%2==0){
            return true;
        }
        return false;
    }
   
    public boolean isOdd(int n){
        
        if(n%2==1){
            return true;
        }
        return false;
    }
   
    public boolean isPrime(int n){
        
        for(int i=2;i<=(int)Math.sqrt(n);i++){
            if(n%i==0){
                return false;
            }   
        }
        return true;
    }
   
   
    //*********************
    public boolean isEven(MyInteger m){
        
        if(m.get()%2==0){
            return true;
        }
        return false;
    }
   
    public boolean isOdd(MyInteger m){
        
        if(m.get()%2==1){
            return true;
        }
        return false;
    }
   
    public boolean isPrime(MyInteger m){
        
        for(int i=2;i<=(int)Math.sqrt(m.get());i++){
            if(m.get()%i==0){
                return false;
            }
        }
        return true;
    }
   
    public boolean equals(int n){
        
        if(this.value==n){
            return true;
        }
        return false;
    }
   
    public boolean equals(MyInteger m){
        if(this.value==m.value){
            return true;
        }
        return false;
    }
   
    public static int parseInt(char[] c){
        
        try{
            String str=String.valueOf(c);
            int num=Integer.valueOf(str);
            return num;
        }catch(Exception e){
            e.printStackTrace();
            return 0;
        }
        
    }
   
    public static int parseInt(String str){
        
        try{
            int num=Integer.valueOf(str);
            return num;
        }catch(Exception e){
            e.printStackTrace();
            return 0;
        }
        
    }
}

public class TestMyInteger {
   
    public static void main(String[] args){
        
        MyInteger mInt=new MyInteger(3);
        MyInteger nInt=new MyInteger(4);
        int num=4;
        char[] c={1,2,3};
        String s="12345";
        
        System.out.println("mInt.get()="+mInt.get());
        System.out.println("nInt.get()="+nInt.get());
        
        if(mInt.isEven())
            System.out.println("mInt.value是偶数!");
        else
            System.out.println("mInt.value不是偶数!");
        if(mInt.isOdd())
            System.out.println("mInt.value是奇数!");
        else
            System.out.println("mInt.value不是奇数!");
        if(mInt.isPrime())
            System.out.println("mInt.value是素数!");
        else
            System.out.println("mInt.value不是素数!");
        
        //********************
        if(mInt.isEven(num))
            System.out.println(num+"是偶数!");
        else
            System.out.println(num+"不是偶数!");
        if(mInt.isOdd(num))
            System.out.println(num+"是奇数!");
        else
            System.out.println(num+"不是奇数!");
        if(mInt.isPrime(num))
            System.out.println(num+"是素数!");
        else
            System.out.println(num+"不是素数!");
        
        //************************
        if(nInt.isEven(nInt))
            System.out.println("nInt.value是偶数!");
        else
            System.out.println("nInt.value不是偶数!");
        if(nInt.isOdd(nInt))
            System.out.println("nInt.value是奇数!");
        else
            System.out.println("nInt.value不是奇数!");
        if(nInt.isPrime(nInt))
            System.out.println("nInt.value是素数!");
        else
            System.out.println("nInt.value不是素数!");
        
        if(mInt.equals(num))
            System.out.println(mInt.value+"="+num);
        else
            System.out.println(mInt.value+"!="+num);
        
        if(nInt.equals(num))
            System.out.println(nInt.value+"="+num);
        else
            System.out.println(nInt.value+"!="+num);
        
        if(mInt.equals(nInt))
            System.out.println(mInt.value+"="+nInt.value);
        else
            System.out.println(mInt.value+"!="+nInt.value);
        
        int n1=mInt.parseInt(c);
        int n2=mInt.parseInt(s);
        System.out.println("c="+n1+",s="+n2);
    }

}

[ 本帖最后由 琢石成器 于 2013-11-16 15:58 编辑 ]
2013-11-16 15:53
FYWily
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-26
收藏
得分:0 
回复 2楼 琢石成器
这位大哥,我在命令窗口运行了下,出现一下错误:
D:\Myjava\lianxiti10_3>javac ceshi.java
ceshi.java:6: 找不到符号
符号: 类 MyInteger
位置: 类 lianxiti10_1.ceshi
        MyInteger mInt=new MyInteger(3);
        ^
ceshi.java:6: 找不到符号
符号: 类 MyInteger
位置: 类 lianxiti10_1.ceshi
        MyInteger mInt=new MyInteger(3);
                           ^
ceshi.java:7: 找不到符号
符号: 类 MyInteger
位置: 类 lianxiti10_1.ceshi
        MyInteger nInt=new MyInteger(4);
        ^
ceshi.java:7: 找不到符号
符号: 类 MyInteger
位置: 类 lianxiti10_1.ceshi
        MyInteger nInt=new MyInteger(4);
                           ^
ceshi.java:71: 找不到符号
符号: 变量 MyInteger
位置: 类 lianxiti10_1.ceshi
        int n1=MyInteger.parseInt(c);
               ^
ceshi.java:72: 找不到符号
符号: 变量 MyInteger
位置: 类 lianxiti10_1.ceshi
        int n2=MyInteger.parseInt(s);
               ^
6 错误
####################################################
实例中貌似无法调用MyInteger啊!?
2013-11-17 11:23
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
收藏
得分:0 
回复 2楼 琢石成器
当str为一串空格字符时,Integer.valueOf(str)会抛出异常。
我是这么改的
public static int parseInt(char[] c){
            String str=String.valueOf(c);
            if(str.trim().isEmpty())
                return 0;
            else
            {   
                int num=Integer.valueOf(str.trim());
                return num;
            }
        
    }
个人意见,仅供参考。

新手发言,请多指教。
2013-11-20 14:35
快速回复:小弟有道题看不太明白,求大神指导
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.077446 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved