方法的定义:
[修饰符] 返回值类型 方法名([形参表]){
语句;方法体
}
方法的调用:
方法名(实参)
对象的引用名.方法名(实参) //通过对象调用非静态方法
类名.方法名(实参) //通过类名调用静态方法
public class ClassAndObject { public static void main(String args[]) { System.out.print(Hero()); } static int Hero() { return 5; } }
方法的参数传递:
按值传递 和 按引用传递
参数为简单数据类型:不影响实参的值;int a=1不会因方法而改变值
参数为引用(类、数组、接口):直接修改实参
递归:
计算n!:
static long Factorial(int n) { if(n==1) return 1; else return n*Factorial(n-1); } }
方法和变量的作用域:
private 当前类内
default 当前package内
protected 不同package的子类内可访问
public 都可访问
数组
数组:相同数据类型数据的集合,有先后顺序
用a[0]表示具体数据
String stringArray[]=new String[3] 分配内存空间,3个元素空间,初始值为null
stringArray[0]=new String("how");
String stringArray[];
stringArray = new String[3];
stringArray[0]="第";
System.out.println(stringArray);
System.out.println(stringArray[0]);
数组属性:length
例题:求数组元素之和
public class SumArray { public static void main(String args[]) { int []arraySum= {1,2,3,4,5,6,7,8,9}; int total=0; for(int element:arraySum) { total+=element; } System.out.println(total); } }
冒泡算法
public class BubbleSort { public static void main(String args[]) { int []array= {12,6,8,88,23,63,-5,-26}; for(int element:array) { System.out.print(element+" ");//排序前 } System.out.println("排序前"); bubbleSort(array); //排序后 } static void bubbleSort(int array1[]) { for(int pass=1;pass<=array1.length-1;pass++) { System.out.println("第"+pass+"次"); for(int element=0;element<=array1.length-pass-1;element++) { if(array1[element]>array1[element+1]) { int hold= array1[element]; array1[element]=array1[element+1]; array1[element+1]=hold; } for(int num:array1) {System.out.print(num+" ");} System.out.println(); } } } }
增强型for循环:
for(int element : array){}
多维数组:
类型 数组名[ ][ ]
int b[][]=new int[2][]; b[0]=new int[3]; b[1]=new int[5];
声明--创建数组空间--数组初始化
int b[][]={{1,2},{3,4},{5,6}}
不定参数:
dataType...parameters
void method(String s,int...numbers) ----numbers是一个数组
Arrays类:常用static方法
void sort(Type [ ]a) 以增序的方式排序
Arrays.sort(array);
int binarySearch (Type []a,type key ) 查找指定元素值key,返回下标,否则返回-1
Arrays.binarySearch(array,6)
void fill (type []a, val ) 将值填入到数组a的各个元素中
Arrays.fill(array, 5);
,将array中全部元素变成5
boolean equals(type []a1, type []a2) 比较两个数组是否相等
数组复制
1、System.arraycopy(数组1,从哪开始int,数组2,从那开始int,复制的长度length)
2、a.clone()
3、Arrays.copyOf ()
4、Arrays.copyOfRange (list,from,to)