JAVA--方法(2)

本篇来详细说说成员变量与局部变量,对内存的管理,构造方法,this关键字,方法重写与方法重载.

成员变量与局部变量

请看下面的表格,已经详细列出了两者的区别:

成员变量与局部变量的区别
 成员变量局部变量
位置方法外,类体中

方法内

(包括小括号内的形参)

默认值有默认值,无需在构造器内初始化.无默认值,必须先初始化再使用

内存

堆中栈帧中
生命周期对象实例化出现到被垃圾回收机制处理声明开始到方法结束后栈帧消失.

 

上面的对比中提到了几个关键词:构造器,,栈帧,下面来详细讲解一下这些关键词.

构造方法

又名构造器,是一种特殊的方法:没有返回值,方法名与类名相同.作用是给成员变量初始化.

 示例代码:

public class Test{
    
    int x;
    int y;
    
    public Test(){}//构造方法1

    public Test(int x,int y){//构造方法2
        this.x=x;
        this.y=y;
    }
    
    public int sum(int x,int y){//普通方法
        return x+y;
    }
}

如果我们没有自定义构造方法,系统会默认提供一个无参构造器,就是上面的构造方法1,不会显示出来.

如果我们添加了如构造方法2一样的有参构造器,则系统不再提供无参构造器,如果需要无参构造器则需要自己编写一个.

   注意:若提供了有参构造器,因为构造器是用来初始化成员变量的,所以形式参数与成员变量一致,在赋值时需要添加this.

this关键字:形式参数与变量名一致时,需要在成员变量前添加this.  ,意思是指向将要创建的那个对象,即变量.方法()

如何使用(调用)构造器?

只能使用new关键字调用,例如:

//在上面Test类插入主方法:

public static void main(String[] args){
    
    Test t1=new Test();//调用无参构造器

    Test t2=new Test(3,5);//调用有参构造器

}

如果调用的是无参构造器,则无需传入参数,若调用了有参构造器,则必须传入与构造器形参相同的参数.

 

内存管理机制

JVM将内存分为三大主要区域:,,方法区.内存管理中引入了垃圾回收机制,可以让程序员无需考虑内存溢出问题.

方法区:用来加载字节码(.class)文件,存储类的信息.

:存储引用类型的变量.

:存储方法内的局部变量.

栈中还包含栈帧,栈帧指的是,当程序运行到一个方法时,JVM专门为其开辟的一个独有空间,用来存储方法内的局部变量

垃圾回收机制(Garbage Collection,GC)是JAVA特有的一个线程,用于回收没有任何指向的对象,它的存在使得JAVA程序员无需担心发生内存溢出或内存泄露的情况(C,C++等就需要经常考虑内存溢出或泄露的问题.).

 

方法重载(Overload)

Test类中的构造方法1与构造方法2的方法名相同,但是参数列表不同,这就是方法的重载.

方法重载:同一个类中,方法名相同,参数列表不同,就叫做方法重载,三个条件缺一不可.

下面给一个普通方法的方法重载实例:

public class Test{
    
    public void sum(int x,int y){//方法
        System.out.println(x+y);
    }

    public void sum(int x,int y,int z){//重载1
        System.out.println(x+y+z);
    }

    public void  sum(double x,double y){//重载2
        System.out.println(x+y);
    }

    public static void main(String[] args) {
        Test t=new Test();
        t.sum(5,5);//调用方法
        t.sum(6,2,7);//调用重载1
        t.sum(9.2,7.7);//调用重载2
    }
}

在调用时,系统会自动根据传入的参数判断该调用哪个方法而执行相应的逻辑.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值