java接口中和抽象类中的抽象方法是不是可以理解为一个函数声明呢
可以这样理解,Java中的抽象方法包含了函数的声明,但是没有具体的实现。抽象方法在接口和抽象类中都可以使用,它们是一种为实现类定义规范的方式。具体地说,接口中的所有方法都是抽象方法,抽象类中可以包含抽象方法和具体的非抽象方法。当一个类实现了某个接口或继承了某个抽象类时,必须实现所有的抽象方法,否则该类也必须是抽象类,不能被实例化。抽象方法的定义包含方法的名称、参数列表和返回类型,但是不包含方法体。例如,以下是一个抽象方法的定义:
public abstract void doSomething();
其含义是声明了一个抽象方法,名称为doSomething,参数列表为空,返回类型为void,但是没有具体的方法实现。总之,抽象方法可以被视为一种函数的声明,但是它们没有具体的实现,必须由实现类提供具体的方法实现。
可以,对函数输入和输出进行了约定,但不进行具体实现,由子类实现
不知道你这个问题是否已经解决, 如果还没有解决的话:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
创建数组
首先我们创建一个int[] array={9,8,7,6,5};
接下来我们要实现升序
for(int i=0;i<array.length-1;i++){
for(int k=i+1;k<array.length;k++){
if(array[i]>array[k]){
int temp=array[k];
array[k]=array[i];
array[i]=temp;
}
}
}
最后我们得到结果56789
原理
当i=0时
98765
89765
79865
69875
59876
当i=1时 这时第一位已经交换完成,我们只需交换后4位
59876
58976
57986
56987
当i=2时
56987
56897
56798
当i=3时
56798
56789
通过上述交换我们可以得到结果