zoukankan      html  css  js  c++  java
  • Java 面向对象二

    成员变量与局部变量

    1、成员变量:定义在类中方法外的变量

     局部变量:定义在方法中的变量

    2、不同点:

      代码层面:定义位置不同,参考1

      内存层面:空间不同,成员变量属于对象,跟对象一起存储在堆内存中

            局部变量属于方法,在栈内存的方法的栈帧中

      生命周期不同:成员变量随着对象的创建而存在,对象的消失而消失

            局部变量随着方法的调用而存在,方法的调用结束而消失

      初始化状态不同:局部变量:没有默认的初始值,必须先赋值才能使用

            成员变量:有默认的初始值,引用数据类型:null

                   基本数据类型:整数类型:0

                          小数类型:0.0

                          布尔类型:false

                          字符类型:’u0000’

    方法的形式参数

    1、方法的形式参数可以是引用数据类型,也可以是基本数据类型。

    2、引用数据类型:类 接口 数组 枚举等

    3、当方法的形式参数是引用数据类型时,调用方法时,传入的是一个对象的内存地址,在方法的内部可以通过这个内存地址访问方法外的对象。

    方法的返回值

    1、方法的返回值既可以是基本数据类型,也可以是引用数据类型

    2、当方法的返回值是引用数据类型时,在return语句中,一定返回该类型的一个对象。

    匿名对象

    1、匿名对象:没有名字的对象。

    2、定义格式:

      new 类名();

    3、匿名对象的使用场景:

       1、如果某个对象在创建之后,其方法只调用一次,那么就可以使用匿名对象来调用。这种写法会节省一些内存空间。

       2、可以作为某个方法的实际参数。这种调用形式,在主方法中,可以将该对象看做匿名对象,但是在被调用的方法中,这个对象是有引用的对象,不是匿名对象。

       3、可以作为某个方法的返回值。这种调用形式,在被调用方法中,这个对象是匿名对象,但是在调用者,这个对象可能不是匿名对象。

      4、可以作为数组或者集合的元素,使用数组的索引可以依次取到匿名对象。

    4、注意事项:

       匿名对象可以给成员变量赋值,但是这样做没有任何意义。因为匿名对象一旦被赋值,匿名对象就变成了垃圾,很快被回收掉。即使没有被回收,我们也无法使用这个匿名对象。

     5、匿名对象存入数组的使用

    public class Test1 {
    
        public static void main(String[] args) {
            Person[] prr = new Person[5];
            for(int i=0;i<prr.length;i++) {
                prr[i]=new Person();
                prr[i].age = i;
            }
            System.out.println(prr[3].age);
    
        }
    
    }
    class Person{
        String name;
        int age;
    }

     

     

     

     

  • 相关阅读:
    UIView+ViewController.h 点击控制器上视图,使视图push下个视图控制的封装
    Touch Demo
    layoutSubviews与drawRect
    UI NS CG CF 区别
    CALayer
    关于CALayer的困惑
    pypy 对接阿里短信平台
    mysql去掉默认值
    GCC升级
    jemalloc 测试
  • 原文地址:https://www.cnblogs.com/xfdhh/p/11180677.html
Copyright © 2011-2022 走看看