求大侠看看,哪里错了?
程序代码:
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());
}
}
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());
}
}
搜索更多相关的解决方案:
看看
----------------解决方案--------------------------------------------------------
"""""public void main(String [] args){""""""" 主方法是静态的啊 是 public static void mai(String args[])
还要个setPos();
----------------解决方案--------------------------------------------------------
我现在已将入口函数改为了静态的,并且将方法也和成员变量也改为了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());
}
}
----------------解决方案--------------------------------------------------------
看得真纠结啊,一门纯面向对象的语言都变成了面向过程了,找不着本该有的对象……希望楼主本身不要找不着对象,呵呵
重写成员方法时是不能把它写成静态的,明白不?
写代码要有对象有类的概念。木有对象说不下去面向对象。
程序代码:
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());
}
}
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 编辑 ]
----------------解决方案--------------------------------------------------------
我这几天才开始学java,之前学了C和C++,但编的不多,所以基础东西还掌握的不好,不过还是很感谢你。
----------------解决方案--------------------------------------------------------
回复 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》
----------------解决方案--------------------------------------------------------