方法重载

一、方法

  概念:类的共同行为,封装了一段逻辑代码,在封装方法时尽可能的只完成一项功能

 方法的使用:方法属于对象的行为,应该使用:引用.方法,这些方法动态绑定到对象上

 方法签名:方法名+形参列表=方法签名

    形参列表:指的是形参的顺序列表

二、方法重载

 概念:在同一个类型中,方法名相同,参数列表不同。

 运行过程:在方法调用时,编译器会检查类的信息中是否有此方法签名的方法。如果有,编译通过,没有,编译失败,并提示错误。

三、内存管理机制:

   jvm将内存分成三大主要区域。

      方法区:jvm将字节码文件加载到此区域,用来存储类的信息

      堆:用来存储引用类型的对象

      栈:用来存储方法内的局部变量

      栈帧:是栈中的空间,当程序执行到某一个方法时,jvm专门为此方法开辟的一块独有空间,此方法内的局部变量都在栈帧中,当此方法结束后,栈帧消失,释放内存。

  垃圾回收机制:(GC)

       jvm的一个独有线程(程序),用于回收没有任何引用指向的对象

       System.out.println((new Person()).name);

       上述产生的对象,以后再也无妨使用,如果类似的这样情况有很多,对象来不及被出来,内存剩余空间就会越来越小,有可能出现内存溢出情况。 因此需要一个处理机制,即垃圾回收机制。没有被引用的对象会被视为垃圾,等待GC被回收

四、构造方法(构造器)

     是特殊的方法,作用是用来给成员变量(Field,字段,属性)初始化。

     构造方法是一个特殊的方法,没有返回值,方法名和类名相同。

  (1)默认无参构造器:如果定义类时,没有添加构造方法,系统会默认提供一个公有的没有形式参数的构造方法

      注意:如果定义期间,提供了构造器,系统不再提供无参构造器。

(2)有参构造器:因为构造器是用来给成员变量初始化的,为了方便,所以形式参数的名称都与成员变量一致。因此,在赋值时,this.不能省略。

this关键字:  在普通方法或构造器中,操作的成员变量如果与局部变量名称相同时,为了避免出现歧义,应该在成员变量前使用this.进行区分。当没有歧义时,this.可以省略不写。

在构造器中:还可以使用this关键字调用本类中的其他构造方法(语法格式this(有参传参)只能在构造器的首行首句使用)

构造方法的调用:只能是new关键字来调用。new构造方法(有参传参)。

 对象的实例化:是由new完成的(对象此时就存在了,但是成员变量都是默认值)

 对象的成员变量初始化:是由new调用的构造器进行的(成员变量是第一次被赋值)

构造器的重载:一个类中,可以有很多个构造器。方法名相同,参数列表不同。

五、成员变量与局部变量的区别:

    成员变量:

              定义位置:在方法外,类体中

             默认值:有默认值,在构造器中可以不对成员变量初始化

             内存位置:在堆中

             生命周期:从对象实例化开始出现,到对象消失

  局部变量:

              定义位置:在方法内(包含小括号内的形参)

              默认值:没有默认值,必须初始化再使用

              内存位置:在栈帧中

              生命周期:从声明时开始,到方法结束后,栈帧消失时

六、数组:

              基本数据类型数组,元素是基本类型的数据

              引用数据类型数组,元素是对象

              初始化的方法:

                       静态初始化:         元素类型[] 变量名 = {}

                        动态初始化:   (1)规定长度的             (2)不规定长度的

引用数据类型的数组使用规定长度的方式进行初始化时,默认值为null

PS:引用类型的数组对象内,存储的是元素对象的地址信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值