面向对象编程基础 一 匿名对象,函数重载和构造函数

匿名对象

顾名思义即没有对象名,直接调用,如new Dog().fun(),没有对象名,但会在堆中开辟一个对象。每次new都不一样,在程序中连续使用new Dog().fun(),表示不同的对象,而不是同一个。JAVA匿名对象会被分配到堆内存,分配到内存后运行一次就变成垃圾了,一次性使用的因为没有对象名找不到,不过内存处理机制会对一定时间内无指针指向的对象进行 destrory()。

这里注意两点,

一   堆中存放具体数据  栈中存放你所命名的变量名字
二   既然叫匿名函数  自然没有名字  所以这就是在堆里有具体数据 而栈中没有名字指向这个数据的意思

匿名对象的作用:

匿名对象使用方法一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。如果对一个对象进行多个成员的调用,就必须给这个对象起个名字。

匿名对象使用方法二:可以将匿名对象作为实际参数进行传递。


函数重载

函数重载两个或者两个以上的函数在同一个类当中,函数名相同,参数列表不同。一个类生成的对象在调用类中的函数时可能会带入不同的参数,但实现功能都是一样的,就可以定义为同名函数,对象在调用时根据参数类型匹配,这样既能保证对不同类型的参数都适用而且也能保证同一个类中同一功能函数的单一性,在使用时更简单,明了。

构造函数

构造函数,即在生成对象时调用,生成一个具体的对象具有类的成员变量及函数,可理解为构造对象。调用时在堆中开辟内存存放对象的相关成员和成员函数,并在栈中存放对象的引用。new出来的对象都在堆中,由Java的内存管理机制来管理

构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
(5)构造方法可以重载,以参数的个数,类型。但是,不区分参数的排列顺序。
java 构造函数的执行过程
类初始化时构造函数调用顺序:
(1)初始化对象的 存储空间为零或null值;
(2)调用父类构造函数;
(3)按顺序分别调用类 成员变量和实例成员变量的初始化 表达式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值