美文网首页
对象作为参数在函数中的传递问题

对象作为参数在函数中的传递问题

作者: 资本家大恶人 | 来源:发表于2020-06-28 11:44 被阅读0次

对象的生命周期

public class Personal {
//  成员变量自动初始化
    private int age;
    private String name;

    void shout() {
//      如果局部变量与成员变量一致时取至等于局部变量
//      int age=60;
        System.out.println(age);
    }

//  构造方法
    public Personal() {
//      对类中 变量进行初始化
//      age=10;
        System.out.println("tt");
    }

    public Personal(String y) {
        this.name = y;
    }

    public Personal(int x, String y) {
//      一个构造方法通过通过调用另一个构造方法
        this(y);
        this.age = x;
//      this.name=y;
    }

    public void someOne(Personal p) {
        p.shout();

    }

    public void fun1() {
        System.out.println(name);
    }

    public void fun2() {
        Personal personal4 = new Personal("a1");
        personal4.fun1();
//  this指代主方法产生的对象
        this.fun1();

    }
// 主方法
    public static void main(String[] args) {

        new Personal();
        new Personal();
        new Personal();
//      调用垃圾回收器
        System.gc();

        // TODO Auto-generated method stub
//      创建对象
        Personal personal1 = new Personal(1, "angel");
        Personal personal2 = new Personal();
//        复值
//        对象可以调用该类的属性和方法
        personal1.age = -30;
//        调用方法
        personal1.shout();
        personal2.shout();

//        personal1调用personal2的方法
        personal1.someOne(personal2);

        String str1 = new String("angel1");
        String str2 = new String("angel2");
        String str3 = new String("angel3");

//        比较对象在堆内存的内容是否相等
        boolean b = str1.equals(str2);
        System.out.println(b);

             //  在主方法创建对象,在方法中通过this直接引用此对象
        Personal personal3 = new Personal("a2");
        personal3.fun2();
    }

// 垃圾回收器 在Java中自动启用或调用  System.gc()方法
    @Override
    protected void finalize() throws Throwable {
        // TODO Auto-generated method stub
        super.finalize();
        System.out.println("finalize is going");
    }

}

数据作为参数在函数中的过程

基本变量

对象和数组

重新创建数组

具体代码

public class PassParams {
     int x;

    public static void main(String[] args) {
        // TODO Auto-generated method stub

//       基本变量不会改变取值 
         int x = 5;
         change(x); 
             System.out.println("基本数据"+x);

        PassParams passParams = new PassParams();
        passParams.x = 5;
        change(passParams);
        System.out.println("对象"+passParams.x);

        int[] arr = new int[1];
        arr[0] = 5;
        change(arr);
        System.out.println("数组"+arr[0]);
    }

//  基本数据
    public static void change(int x) {
        x = 3;
    }

//  引用对象
    public static void change(PassParams p) {
//      重新创建新的对象,当方法结束时定义的值也会消失
        p=new PassParams();
        
        p.x = 3;
    }

//  数组
    public static void change(int[] x) {
        x[0] = 3;
    }
}

相关文章

  • 对象作为参数在函数中的传递问题

    对象的生命周期 数据作为参数在函数中的过程 基本变量 对象和数组 重新创建数组 具体代码

  • js中一个对象当做参数传递时候?

    在平时使用过程中,好像把对象直接传递给函数做参数好像没啥 从上述代码看出,当对象作为参数传递给函数并且在函数内部发...

  • 对象传递

    一、对象作为函数参数 对象作为函数参数时,其传递过程较为复杂,传递方式比较独特。其伟参数过程和数组不同。传参...

  • 对象作为函数参数的三种方式及推荐

    对象作为函数参数时有三种情况 一为 普通类作形参直接传递参数 二为引用类对象作为函数参数 三为对象指针作为函数参数...

  • Android Kotlin 将函数作为参数传递

    Kotlin支持函数作为参数传递,无需构建对象来包装函数。 1、调用一个无返回的函数作为参数传递为:方法名()->...

  • JavaScript入门——函数(三)

    函数是对象,函数可以存放在变量中,作为参数传递。函数可以返回函数。因为函数也是对象,因此函数可以拥有方法。 定义 ...

  • JS 回调函数

    函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回; 回调函数 一...

  • Java参数传递

    基本类型 基本类型作为参数传递时,传递的是值得拷贝。 在函数内做任何改变都不会影响原来的值。 对象 对象作为参数传...

  • Dart - 函数(函数对象、匿名函数和词法作用域)

    函数作为一级对象 可以将函数作为参数传递给另一个函数。例如: 上述代码中,printElement 就是一个函数类...

  • kotlin中高阶函数/Lambda的性能问题分析及inline

    在Kotlin中,使用高阶函数(函数/Lambda作为参数传递)时不良使用会造成性能问题。官方文档表述如下: 那在...

网友评论

      本文标题:对象作为参数在函数中的传递问题

      本文链接:https://www.haomeiwen.com/subject/avbifktx.html