• java中别名问题


    Java中别名问题

    Java中涉及到对象引用时常常出现意想不到得问题
    
    1. 直接将一个对象赋值给另一个对象时 改变另一个对象 开始的那个对象也出现改变
    class Person{
            private int age;
    
            public int getAge() {
                return age;
            }
    
            public void setAge(int age) {
                this.age = age;
            }
        }

    对于对象Person做如下操作时候

            Person p1 = new Person();
            p1.setAge(10);
            Person p2= p1;
            p1.setAge(15);
            System.out.println(p2.getAge());

    发现打印结果为15

    1. 方法中参数为对象时候,在方法体中改变参数对象的值
      方法如下
     public void changeAge(Person person){
            person.setAge(20);
        }

    同样做如下操作

            Person p1 = new Person();
            p1.setAge(10);
            changeAge(p1);
            System.out.println(p1.getAge());

    发现结果打印为20

    问题延伸  在方法体里面如果参数是字符串时结果如何呢
    方法如下
    
    public void changeString(String string){
            string = "another string";
            System.out.println(string);
        }

    对其做如下操作

            String string = "one string";
            changeString(string);
            System.out.println(string);

    会发现对于string的值没有改变,还是“one string”

  • 相关阅读:
    word文档的图片怎么保存到Web编辑器上
    如何在linux下查看gpu信息

    lua注释
    readDouble
    ..在lua中运用
    C++条件分支结构
    C++条件分支结构
    Flink基础(十六):Table API 和 Flink SQL(一)整体介绍
    Flink基础(十四):DS简介(14) 搭建Flink运行流式应用
  • 原文地址:https://www.cnblogs.com/JzedyBlogs/p/9368659.html
Copyright © 2020-2023  润新知