函数
函数的构成:
public static void main(String[] args){
}其中:
public:是访问修饰符;
static:静态;
void :返回值类型(此处是无返回值,返回值可以是数据类型比如;int、long);
main: 方法名;
String:形参类型;
args:参数名;
返回值详解:
public static int main(String[] args){
return 数值(int类型);
}
当有返回值的时候,比如int,那么执行语句中必须要有return,并且返回一个数值,该数值的类型与函数中所定义的返回值的类型相同。
关于方法重载
定义:使用相同的方法名,传入不同参数列表,获得相应的执行结果。(PS:列表不同可以分为:参数类型不同、参数个数不同、前后顺序不同(对于列表内的参数类型不同的情况))
public static int jf(int n,int m,int l){
int c=n+m+l;
return c;
}
public static int jf(int n,int m){
int c=n+m;
return c;
}
递归
//计算5的阶乘
public class diGui {
public static void main(String[] args) {
int result = dg(5);//调用函数dg,并且输入整数5
System.out.println(result);//输出最终结果
}
//递归运算函数
public static int dg(int n){
if (n1) {
return 1;
}else {
return ndg(n-1);//这里是反复调用自身,每次调用后,新函数里面的参数减1
}
}
}
通过不停的调用自身,不断解析:5x dg(4)—>>5x4x dg(3)—>>5x4x3x dg(2)—>>5x4x3x 2x dg(1)—>>5x4x3x 2x1,当解析到最后一步的时候,从最外层开始计算,一层一层往最初的表达式靠近,最终得到第一次调用dg函数后得到的数值,并且返回。``
如图,从下至上,一层层得解析表达式,当表达式完全解析后,再从上往下==,一层层得获得数值,释放函数,最终得到结果。(PS:先进后出)
数组
定义
数组是一个变量,存储相同数据类型的一组数据。
基本要素
1.标识符:数组的名称;
2.数组元素:存放的数据;
3.元素的下标:从0开始,每一个元素通过下标访问;
4.元素类型:数据的类型;
定义
1.声明数组 : int [ ] a;数据类型+数组名称;
2.分配空间 : int [ ] a= new int [长度,比如:5];
3.赋值 : a[ 下标:0]=8;数组a[ ]中,第一位赋值为整数8;
4.处理数据 : a[ 0 ] =a[ 0 ] *10 ; 数组中的元素可以覆盖;
杂
1.当声明一个数组a的长度和元素时,必须在同一条语句中声明,不能分开。
2.对于数组中的升序排列,可以用Java.util.Arrays中的sort进行升序排列:Arrays.sort.(a); 其中a代表数组a[ ]。
3.关于数组克隆:int[ ] newRand = (int [ ]) rand.clone();克隆后得到的数组是object类型,这个时候需要强制转型。
4.逆序:定义一个新的数组b,按照数组下标倒序排列:b[ i ]=a[ a.length -i -1].
代码如下:
public static void main(String[] args) {
//定义数组长度为5
int[] scores = new int[] {22,33,44,55,66};
int[] newScores = new int[5];
for (int i = 0; i < newScores.length; i++) {
newScores[i]=scores[scores.length-i-1];
}
for (int i = 0; i < newScores.length; i++) {
System.out.print(newScores[i]+"\t");