匿名对象
- 格式 : new 类名().方法名(形参);
- 我们创建的对象,没有给变量赋值,直接调用类的方法
- 匿名对象只能使用一次
- 匿名对象作为形参可以在方法中再被调用
方法
方法的重载
在同一个类中国呢,允许存在一个以上的同名方法,只要他们的参数个数不同或者参数类型不同即可
- 相同 :在同类中,方法名相同
- 不同 : 参数列表不同 -> 参数个数不同,参数类型不同
注意
- 传参类型和个数相同时,如果传参的顺序不同则也算重载
- 与权限修饰符和返回值类型无关
可变个数形参的方法
JDK 5.0新增的方法
- 格式 : 数据类型 … 变量名 OR 数据类型[] 变量名
- 当调用可变形参的方法时,形参的个数可以是0~…个
- 可变个数参数的方法与本类中方法名相同,形参不同的方法之间构成重载
- 可变个数参数的方法与本类中方法名相同,形参类型也相同的数组的之间构成重载,二者不能共存
变量的赋值传递
- 如果是数据类型 : 此时赋值的是变量所保存的数据值
- 如果是引用类型 : 此时赋值的是变量所保存的数据的地址值
- 引用类型的变量 在内存中存储的不是null就是地址
方法形参的传递机制
- 形参就是方法定义时,声明在一对()内的参数
- 实参就是方法调用时,实际传递给形参的数据
- 如果参数是数据类型 : 此时实参赋值给形参的是变量所保存的数据值
- 如果参数是引用类型 : 此时实参赋值给形参的是变量所保存的数据的地址值
递归
- 一个方法体内调用它自身
- 方法递归包含了一种隐式的循环,会重复的执行某段代码,但这种重复执行无须循环控制
public class Test {
public static void main(String[] args) {
Person p = new Person();
p.name = "Jack";
p.speak("你好!");
// 匿名对象
new Person().speak("hello!");
}
}
class Person{
String name;
public void speak(String str) {
System.out.println("The person's name is "+ name + ", he speak : "+str);
}
public void speak(String ... str) {
System.out.println("The person's name is "+ name + ", he speak : "+str);
}
}