各位江湖侠客,小弟我在java学习中还是菜鸟阶段,目前碰到一处代码不理解。望请答疑解惑,小弟不胜感激!!!
问题如下:
1,public之后怎么没有了static?具体什么原因可以写成publc void ?2,if条件语句之后,i 和j的关系怎么表达的?if(array[i]>array[j+1]),这一步小弟不懂。 3,还有这句 showArray(array); 这句代表着输出吗?后面我发现都没有了static,是因为同一个类名吗?非常感谢楼主的回答!public class BubbleSort。
目前明白temp是临时变量。该代码在明日科技的书籍【java从入门到精通】这本书籍中,P116页。非常感谢各位的帮助!
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array ={63,4,24,1,3,15};
BubbleSort sorter= new BubbleSort();
sorter.sort(array);
}
public void sort(int[] array){
for(int i=1;i<array.length;i++){
for(int j=0;j<array.length;j++){
if(array[i]>array[j+1]){
int temp= array[i];
array[i]=array[j+1];
array[j+1]=temp;
}
}
}
showArray(array);
}
public void showArray(int[]array){
for(int i:array){
System.out.print(">"+i);
}
System.out.println();
}
}
------解决方案--------------------
1.因为是用对象调用的,所以可以不加static(static是静态,随着类加载而加载的,不会依赖于对象,楼主貌似不了解static关键字的用法,所以这里只就你的语句解释,不过多说static的用法,楼主可以自己去补充这些知识)
2.冒泡是从第一个开始和第二个比较,然后更具条件交换位置,然后再次两两相邻比较,这样就好像从第一个位置的数据像水中的气泡一样,一直往上面冒,直到到了睡眠,这时候,较大值就会逐渐出现在数组的尾部,当然如果是反序排列就是较小值在尾部
3.因为showArry方法是在sort方法中调用了,二sort方法没有static,所以可以不写static关键字,这个方法是定义用来遍历数组中的元素的,并且在循环中通过println语句打印出来。
楼主想了解更多就去补充下基础知识吧,static静态是静态,什么时候加载等等这些都需要补充,慢慢学,有了基础,这些就看得懂了
希望对楼主有帮助
