1 Java方法
1.1 什么是方法
Java方法是语句的集合,它们在一起执行一个功能。
方法是解决一类问题的步骤的有序组合
方法包含于类或对象中
方法在程序中被创建,在其他地方被引用
1.2 方法的优点
- 程序变得剪短而清晰
- 有利于程序的维护
- 提高开发的效率
- 提高代码的复用性
1.3 方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){
方法体 ;
return 返回值;
}
public static int age(int birthday){
return birthday;
}
1.3.1 定义方法语法的说明
- 修饰符:修饰符,可选的,告诉编译器如何调用该方法。定义了该方法的访问类型
- 返回值类型 :有返回值,类型是什么就返回什么,无返回值用关键字void
- 方法名:是方法的实际名称,方法名和参数表共同构成方法签名,命名规则小驼峰
- 参数类型:可以无参,参数像是一个占位符,是形参;当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
1.4 方法的调用
有返回值-方法调用通常被当做一个值,用相同的类型去接收
无返回值-方法调用是一条语句
1.4.1 不在同一类中的方法调用
导入该类中的包
调用静态方法
通过类名来调用
类名.方法()
public static void main(String[] args){
Method.show();
}
public class Method{
public static void show(){
System.out.printfln("静态调用静态方法");
}
}
调用非静态方法
通过对象来调用
对象名.方法()
public static void main(String[] args){
Method method = new Method();
method.show();
}
public class Method{
public void show(){
System.out.printfln("静态调用非静态方法");
}
}
1.4.2 在同一类中的方法调用
调用静态方法
- 静态方法和非静态方法可以直接调用静态方法
调用非静态方法
- 非静态方法可以直接调用静态方法与非静态方法
- 静态方法调用非静态方法必须通过对象调用
1.5 方法的重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数列表(也就是说参数的个数和类型不同)
程序调用方法时,可以通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法
public static void main(String[] args) {
int a=10;
int b=20;
String name="tom";
method1();
method1(a);
method1(a,b);
method1(a,b,name);
}
private static void method1(int a, int b, String name) {
System.out.println(a+b+name);//30name
}
private static void method1() {
System.out.println("f1()");
}
private static void method1(int a) {
System.out.println(a);
}
private static void method1(int a, int b) {
System.out.println(a+b);
}
1.6 访问控制符
用来控制一个类,或者类中的成员的访问范围
2 Java中的数组
数组Array是用于储存多个相同类型数据的集合(来存储固定大小的同类型元素)
2.1 数组的声明
int[] arr;//首选
int arr[];//效果相同,但不是首选
2.2 数组的创建及初始化
2.2.1 动态初始化
int[] a = new int[5];
Ø 新建int[],长度是5
Ø 刚创建好的数组都是默认值0,int类型的数据默认值是0
Ø 把数组的地址值给变量a保存
2.2.1 静态初始化
方式1:
int[] a ={1,2,3,4,5,6,7,8};
方式2:
int[] a =new int[]{1,2,3,4,5};
2.3 访问数组元素
数组的元素是通过索引访问的。数组索引即元素的下标从 0 开始,所以索引值从 0 到 (数组长度-1)
int[] arr = new int[]{1,2,3,4,5};
System.out.println(arr[0]); //打印结果:1
System.out.println(arr[1]); //打印结果:2
System.out.println(arr[4]); //打印结果:5
2.4 数组的遍历
从头到尾,依次访问数组的位置
2.4.1 for循环遍历
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]);
}
2.4.2 增强for循环遍历(For-Each)
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
for (int i : arr) {
System.out.println(i);
}
2.5 数组工具类Arrays
常用方法
- Arrays.toString(数组)
把数组里的数据,用逗号连接成一个字符串。
格式:[10, 14, 20, 46, 51]
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
System.out.println(Arrays.toString(arr));
//输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- Arrays.sort(数组)
对数组排序,对于基本类型的数组使用优化后的快速排序算法,效率高。
对引用类型数组,使用优化后的合并排序算法
int[] arr = new int[]{10,6,3,8,5,2,7,4,9,1};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- Arrays.copyOf(数组,新的长度)
把数组复制成一个指定长度的新数组。
新数组长度大于原数组,相当于复制,并增加位置。–数组的扩容
新数组长度小于原数组,相当于截取前一部分数据。–数组的缩容
int[] arr = new int[]{1,2,3,4,5};
int[] a1 = Arrays.copyOf(arr, 10);//数组的复制,大于原来长度相当于扩容
System.out.println(Arrays.toString(a1));//[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
System.out.println(a1.length);//10
int[] a2 = Arrays.copyOf(arr, 3);//数组的复制,小于原来长度相当于截取前几个数据
System.out.println(Arrays.toString(a2));//[1, 2, 3]
System.out.println(a2.length);//3