成员变量和局部变量的区别、方法的形式参数如果是引用类型(匿名对象的改进)

 成员变量和局部变量的区别

1)书写位置不同
        成员变量:类中方法外
        局部变量:在方法定义中或者方法声明上
    
2)内存中的位置不同
        成员变量:在堆内存中
        局部变量:在栈内存中
3)生命周期不同    
       成员变量:随着对象的创建而存在,随着对象创建完毕,等待垃圾回收器回收对象(空闲时候进行回收)才能消失
       局部变量:随着方法调用存在,随着方法调用结束而消失
4)初始化不同:
       成员变量:在堆内存中由系统默认初始化(根据成员变量的类型进行默认初始化:String:null int:0)
       局部变量: 无论是先定义还是直接初始化,必须在使用之前初始化,否则报错!

 

方法的形式参数如果是引用类型

//方法的形式参数:引用类型:数组,类,接口
//如果是一个具体类,在调用这个方法的时候,实际参数需要传递的是当前类的对象!
class Student{
    public void study(){
        System.out.println("学习JavaEE...") ;
    }
}
class StudentDemo{
    public void method(Student s){//形式参数是具体类
        s.study() ; //形式参数名.方法名()---->需要通过对象名来访问
    }
}

//测试类
class StudentTest{
    public static void main(String[] args){
        //需要调用StudentDemo类中的method方法
        //创建StudentDemo类对象
        StudentDemo sd = new StudentDemo() ;
        //创建一个具体的学生对象
        Student student = new Student() ;
        sd.method(student) ;
    }
}

使用匿名对象的改进

什么是匿名对象

匿名对象:就是没有名字的对象

匿名的格式

new  类名() ;

匿名对象特点

匿名对象可以作为参数传递,而且它开发中使用一次就可以,只在堆内存开辟空间,使用完毕,被回收掉!

使用匿名对象对形式参数为引用类型的改进

class Student{
    public void study(){
        System.out.println("学习JavaEE...") ;
    }
}
class StudentDemo{
    public void method(Student s){//形式参数是具体类
        s.study() ; //形式参数名.方法名()---->需要通过对象名来访问
    }
}

//测试类
class StudentTest{
    public static void main(String[] args){
        //需要调用StudentDemo类中的method方法
        //创建StudentDemo类对象
        /*
        StudentDemo sd = new StudentDemo() ;
        //创建一个具体的学生对象
        Student student = new Student() ;
        sd.method(student) ;
        */
        
        new StudentDemo().method(new Student()) ;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值