| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 855 人关注过本帖
标题:求大侠看看,哪里错了?
只看楼主 加入收藏
小小鸟001
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-7-13
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
求大侠看看,哪里错了?
程序代码:
package e;

public class NumList {
    private int [] numList=null;
    private int pos=0;
   
    public void setLength(int length){
        numList=new int [length];
    }
   
    private int getPos(int value){
        int curPos;
        int i;
        for( i=pos-1;i>=0;i--)
            if(numList [i]>value)
                numList[i+1]=numList[i];
            else
                break;
        curPos=i+1;
        return curPos;
       
    }
   
    public void AddValue(int value){
        if(pos<numList.length){
            int insertPos=getPos(value);
            numList[insertPos]=value;
            pos++;
        }
    }
   
    public int getValue(int pos){
        return numList[pos];
    }
   
    public String toString(){
        String data=" ";
        for(int singleData:numList){
            data=data + singleData + " ";
        }
        return data;
    }
   
    public  void main(String [] args){
        setLength(5);
        AddValue(1);
        AddValue(2);
        AddValue(3);
        AddValue(4);
        System.out.println(getValue(3));
        System.out.println(toString());
       
       
    }
}
搜索更多相关主题的帖子: 看看 
2011-07-16 19:27
w123012306
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:蜘蛛侠
威 望:4
帖 子:307
专家分:1180
注 册:2010-4-22
收藏
得分:3 
"""""public  void main(String [] args){"""""""  主方法是静态的啊  是 public static void mai(String args[])


还要个setPos();

楼上,楼下的一定要幸福开心哦!
2011-07-16 21:06
小小鸟001
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-7-13
收藏
得分:0 
我现在已将入口函数改为了静态的,并且将方法也和成员变量也改为了static,但还会在public static String toString()报错。这下来咋改?


package e;

public class NumList {
    private static int [] numList=null;
    private static int pos=0;
   
    private static void setLength(int length){
        numList=new int [length];
    }
   
    private static int getPos(int value){
        int curPos;
        int i;
        for( i=pos-1;i>=0;i--){
            
            if(numList [i]>value)
                numList[i+1]=numList[i];
            else
                break;
        }
        curPos=i+1;
        return curPos;
        
    }
   
    public static void AddValue(int value){
        if(pos<numList.length){
            int insertPos=getPos(value);
            numList[insertPos]=value;
            pos++;
        }
    }
   
    public static int getValue(int pos){
        return numList[pos];
    }
   
    public static String toString(){
        String data=" ";
        for(int singleData:numList){
            data=data + singleData + " ";
        }
        return data;
    }
   
    public  static void main(String [] args){
        setLength(5);
        AddValue(1);
        AddValue(2);
        AddValue(3);
        AddValue(4);
        System.out.println(getValue(3));
        System.out.println(toString());
        
        
    }
}
2011-07-17 08:38
洛云
Rank: 5Rank: 5
等 级:职业侠客
帖 子:204
专家分:356
注 册:2010-2-3
收藏
得分:3 
看得真纠结啊,一门纯面向对象的语言都变成了面向过程了,找不着本该有的对象……希望楼主本身不要找不着对象,呵呵
重写成员方法时是不能把它写成静态的,明白不?
写代码要有对象有类的概念。木有对象说不下去面向对象。
程序代码:
public class NumList {
    private int[] numList = null;
    private int pos = 0;

    private void setLength(int length) {
        numList = new int[length];
    }

    private int getPos(int value) {
        int curPos;
        int i;
        for (i = pos - 1; i >= 0; i--) {

            if (numList[i] > value)
                numList[i + 1] = numList[i];
            else
                break;
        }
        curPos = i + 1;
        return curPos;

    }

    public void AddValue(int value) {
        if (pos < numList.length) {
            int insertPos = getPos(value);
            numList[insertPos] = value;
            pos++;
        }
    }

    public int getValue(int pos) {
        return numList[pos];
    }

    public String toString() {
        String data = " ";
        for (int singleData : numList) {
            data = data + singleData + " ";
        }
        return data;
    }

    public static void main(String[] args) {
        NumList numList = new NumList();
        numList.setLength(5);
        numList.AddValue(1);
        numList.AddValue(2);
        numList.AddValue(3);
        numList.AddValue(4);
        System.out.println(numList.getValue(3));
        System.out.println(numList.toString());

    }
}



[ 本帖最后由 洛云 于 2011-7-17 11:52 编辑 ]

QQ群:C语言初级群:31066229
   JAVA2自学交流群(筹备中):31066388
UC群:C语言学习:10051714
2011-07-17 11:51
小小鸟001
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-7-13
收藏
得分:0 
我这几天才开始学java,之前学了C和C++,但编的不多,所以基础东西还掌握的不好,不过还是很感谢你。
2011-07-17 15:59
洛云
Rank: 5Rank: 5
等 级:职业侠客
帖 子:204
专家分:356
注 册:2010-2-3
收藏
得分:0 
回复 5楼 小小鸟001
语言只是语法而已,重要的是编程思想。
另外,get和set方法(如你的例子中的getPos),不赞成你的写法。setPos应该是对pos这个私有变量赋值,而get方法应该是返回这个成员变量的值,get方法也不应该写成私有的,因为它是给外部对私有变量赋值时调用的。一般常的写法是
public void setPos(int pos) {
    this.pos = pos;
}
public int getPos() {
    return pos;
}

如果在接触一门新的语言,有点不知如何下手时,建议就是多看看例子代码。外国的一些教材,挺不错的。如《21天学通Java》或《THINKING IN JAVA》

QQ群:C语言初级群:31066229
   JAVA2自学交流群(筹备中):31066388
UC群:C语言学习:10051714
2011-07-17 23:52
快速回复:求大侠看看,哪里错了?
数据加载中...
 
   



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

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