匿名对象
顾名思义即没有对象名,直接调用,如new Dog().fun(),没有对象名,但会在堆中开辟一个对象。每次new都不一样,在程序中连续使用new Dog().fun(),表示不同的对象,而不是同一个。JAVA匿名对象会被分配到堆内存,分配到内存后运行一次就变成垃圾了,一次性使用的因为没有对象名找不到,不过内存处理机制会对一定时间内无指针指向的对象进行 destrory()。
这里注意两点,
一 堆中存放具体数据 栈中存放你所命名的变量名字
二 既然叫匿名函数 自然没有名字 所以这就是在堆里有具体数据 而栈中没有名字指向这个数据的意思
匿名对象的作用:
匿名对象使用方法一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。如果对一个对象进行多个成员的调用,就必须给这个对象起个名字。
匿名对象使用方法二:可以将匿名对象作为实际参数进行传递。
函数重载
函数重载两个或者两个以上的函数在同一个类当中,函数名相同,参数列表不同。一个类生成的对象在调用类中的函数时可能会带入不同的参数,但实现功能都是一样的,就可以定义为同名函数,对象在调用时根据参数类型匹配,这样既能保证对不同类型的参数都适用而且也能保证同一个类中同一功能函数的单一性,在使用时更简单,明了。
构造函数
构造函数,即在生成对象时调用,生成一个具体的对象具有类的成员变量及函数,可理解为构造对象。调用时在堆中开辟内存存放对象的相关成员和成员函数,并在栈中存放对象的引用。new出来的对象都在堆中,由Java的内存管理机制来管理