1.可变参数
a...表示0个或多个int类型的值
①、一个方法只能定义一个可变参数
②、一个方法的其他参数只能放在可变参数的前面
③、可变参数传值时可传入数组
④、可变参数使用时当成数组使用
例如:
package com.blb;
public class Demo02 {
/**
* 两数之和
* a... 表示0个或多个int类型的值
* 一个方法只能定义一个可变参数
*/
public int sum(String b,int aa,int... a) { //n数之和
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
return sum;
}
public static void main(String[] args) {
int[] arr = new int[5];
System.out.println(new Demo02().sum("",3,arr));
}
}
2.递归
为什么要用递归?
递归可以实现简单代码实现复杂功能。
递归的缺点
1.难以理解
2.递归次数过度会出现栈溢出问题
递归的案例
// 把一个字符串倒序输入,使用递归
// public void reverse(int index,String str) {//传两个形参,一个放索引,一个放字符串
// if (index<0) {
// return;
// }
// System.out.println(str.charAt(index));
// reverse(--index, str);
// }
// public static void main(String[] args) {
// new LianXi().reverse(5,"654321");
// }
// 方法2
public String reverse(int index,String str) {
if (index==0) {
return str.charAt(0)+"";
}
return str.charAt(index)+reverse(--index, str);
}
public static void main(String[] args) {
System.out.println(new LianXi().reverse(5,"654321"));
}
3.构造方法
构造方法是java中一个特殊的方法,主要作用是用来构造对象,并初始化对象的属性值
public 类名([参数列表]){
}
构造方法的特点
1.没有返回值
2.方法名必须和类名一致
3.默认情况下,每个类都有一个默认的无参构造方法
4.当你显示声明了构造方法后,默认的构造方法就无效了
4.this关键字
this表示当前对象
当前对象是谁:谁调用这个方法,当前对象就是谁
this关键字的用法
//调用属性(可以省略this.)
this.属性;
//方法名(可以省略this.)
this.方法名();
//调用构造方法
this();
例: public Cat(String name,int age) {//有参构造器
// 用法3:调用构造方法,只能写在构造方法里面,且不能自己调自己(this调构造方法,必须出现在第一行,必须保证当前对象先创建出来才能做其它事情)
this();
// 用法1:调用属性 this.属性名
this.name = name;//谁调用这个方法this就代表谁,this表示当前对象即Cat
this.age = age;
//用法2,调用方法:this.方法名()
this.run();
}
5.static关键字
static是静态修饰符,这个关键字的作用是描述属性,方法是不是归属类的
加了static属于类,没加static属于对象
static的用法
1.修饰成员变量
表示该变量属于类
2.修饰成员方法
表示该方法属于类
3.修饰代码块