类里面的属性和方法必须要在主函数外,然后调用时是在主函数内通过对象调用
有返回值的方法时必须要将这方法接收才能将返回值打印出来
栈(局部变量) 堆(new出来的结构)
匿名对象(new 类名()):我们在创造对象时没有命名(赋变量名)
特点:只能调用一次
应用场景:在含有形参的方法中,调用这个方法时它的实参是匿名对象
因为匿名对象都是new开头也就相当于在堆中开辟了空间,又因为每一个匿名对象都是这样的就相当于每个匿名对象都开辟了空间,每个匿名对象都是相互独立的,又因为没有对象名,所以每个匿名对象只能调用一次他下一次的匿名对象又是一个新的匿名对象
public class we { public static void main(String[] args) { new we().age=10; new we().eat(); } ; int age; public void eat(){ System.out.println(age); } }
在这个里面就可以看出明明已经定义了匿名对象的属性
但通过匿名对象调方法时里面的属性却不是我们赋的值,因为通过匿名对象调用方法时它是一个新的匿名对象所以上面一个匿名对象赋的值和他无关,而它就相当与没有赋值这时候它就会被电脑赋默认初始化的值也就是0
由此可以看出匿名对象只能调用一次
而在应用 都是将匿名对象做为方法的实参来用
方法重构
看是否构成方法重构:1、方法名是否相同、
2、形参的类型、数目是否不同
调用方法时要注意:变量名和形参(避免只看变量名因方法重构调用错误方法)
注意:可变形参作用和数组相似,可变形参的方法里面和数组的使用方法相同(里面都是存放多个该类型的元素)
在方法里面都是使用和数组里面的相同的方法
例如:
变量名.length和数组名.length相同,在可变参数的方法里用变量名.length也就表示该类型元素的个数
写法:(类型...变量名)在方法重构时可变参数不能和数组同时出现
在方法的形参中只能声明一个可变形参;
递归方法:在方法里面自己调用自身的方法;