Java函数、数组
函数
函数:就是定义在类中的具有特定功能的一段独立小程序
格式:
修饰符 返回值类型 函数名(参数类型 参数1,参数类型 参数2,){
执行语句;
return 返回值;
}
返回值类型: 函数运行后的结果的数据类型
参数类型: 是形式参数的数据类型
形式参数: 是一个变量,用于存储调用函数时传递给函数的实际参
return: 用于结束函数
返回值: 该值会返回给调用者
实际参数: 传递给形式参数的具体数值
例如:
public String geString(Object obj1,Object obj2){
//执行语句;
return "返回值";
}
使用函数的好处
定义函数可以将功能代码进行封装,便于对该功能进行复用。函数只有被调用才会被执行,如果函数没有具体返回值,返回值类型用关键字void表示,return语句可以省略不写。 函数的结果应该返回给调用者,交由调用者处理。
public class FunctionDemo {
public static void main(String[] args) {
/*
int x = 4;
System.out.println(x*3+5);
x = 6;
System.out.println(x*3+5);
*/
//int x = getResult(4);
//System.out.println("x="+x);
getResult(16);
}
//发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
//为了提高代码的复用性。对代码进行抽取。
//将这个部分定义成一个独立的功能。方便与日后使用。
//java中对功能的定义是通过函数的形式来体现的。
//需要定义功能,完成一个整数的*3+5的运算,并打印
//1,先明确函数定义的格式。
/*
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return 返回值;
}
当函数运算后,没有具体的返回值时,这是返回值类型用一个特殊的关键字来标识。该关键字就是void。当函数的返回值类型是void时,函数中的return语句可以省略不写。
*/
public static void getResult(int num) {
System.out.println(num * 3 + 5);
return;//可以省略
}
//需求:定义一个功能。完成3+4的运算。并将结果返回给调用者。
/*
其实这两个功能就是在明确函数的定义。
1,是在明确函数的返回值类型。
2,明确函数的参数列表( 参数的类型和参数的个数)。
public static int getSum() {
return 3+4;
}
*/
/*
以上这个函数的功能,结果是固定的,毫无扩展性而言。为了方便用户需求。由用户来指定加数和被加数。这样,功能才有意义。
*/
public static int getSum(int x,int y) {
return x+y;
}
}
函数的重载(Overload)和重写(Override)
重载:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。与返回值类型无关,只看参数列表。
//返回两个整数的和
int add(int a,int b){return a+b;}
//返回两个小数的和
double add(double a,double b){return a+b;}
//返回三个整数的和
int add(int a,int b,int c){return a+b+c;}
重写:是指子类重新定义父类中有相同名称和参数的虚函数,主要在继承关系中出现。
数组
数组:就是一个容器。同一种类型数据的集合,自动给数组中的元素从0开始编号
class ArrayDemo {
public static void main(String[] args) {
//两种写法:
int[] arr = new int[]{3,4,5,6};//arr[0] = 3
int[] arr2 = {3,6,9,7};//arr2[3] = 7
/*
int[][] arr = new int[3][];
arr[0] = new int[4];
arr[1] = new int[2];
arr[2] = new int[2];
System.out.println(arr.length);//打印是二维数组的长度 3;
System.out.println(arr[0].length);//打印二维数组中第一个一维数组长度
*/
int[][] arr3 = {{2,3,4,5},{6,7,7,8},{8,1,8,2}};
int sum = 0;
for(int x=0; x<arr3.length;x++)
{
for(int y=0; y<arr3[x].length; y++)
{
sum = sum + arr3[x][y];
}
}
System.out.println("sum="+sum);
}
/*
十进制-->十六进制。
*/
public static void toHex(int num) {
StringBuffer sb = new StringBuffer();
for(int x=0; x<8; x++) {
int temp = num & 15;
if(temp>9)
sb.append((char)(temp-10+'A'));
else
//System.out.println(temp);
sb.append(temp);
num = num >>> 4;
}
System.out.println(sb.reverse());
}
}
二维数组:
//写法一
int[][] arr = new int[3][3];
//写法二
int[][] arr2 = new int[3][];
//写法三
int[][] arr3 = {{3,2,1},{4,5},{7,8,9,0}};