JavaSE 第十六讲 方法重载剖析 10.4

1.方法重载

public class Test
{
    public void change(Person person, Person person2)
    {
        person.name = "lisi";
        person2.name = "wangwu";
    }
    
    public static void main(String[] args)
    {
        Person person = new Person();
        person.name = "zhangsan";
        
        Person person2 = person;
        
        Test test = new Test();
        
        test.change(person, person2);
        
        System.out.println(person.name);//结果:wangwu
    }

}

class Person
{
    String name;
}

易错!!!

public class People
{
      int age;

      public void change(int i)
      {
          i++;
      }
        
      public void change2(People p)
      {
          p = new People();
          p.age++;
      }

      public void change3(People p, int i)
      {
          p.age++;
          i++;
      }

      public static void main(String[] args)
      {
          /* 
        People people = new People();

        int a = 0;

        people.change(people.age);

        System.out.println(people.age);// 0  原生数据类型值不变
        */

          /*
        People people = new People();

        people.change2(people);

        System.out.println(people.age);//0  指向新引用
          */

      People people = new People();

      people.change3(people, people.age);

      System.out.println(people.age);// 1

  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++运算符重载-上篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 6,785评论 0 51
  • 构造方法是一个类创建对象最先也是必须调用的方法, 在OC中, 我们更习惯称这类方法为初始化方法. OC中的初始化方...
    至皓君阅读 16,062评论 3 14
  • 1.阿里研究员玄难:如何做电商业务中台 简评:淘宝的整个业务系统经过了单一业务系统、分布式业务系统、业务平台化和业...
    何夕一言堂阅读 1,371评论 0 0
  • 〇、何为堆栈溢出? 每次执行JavaScript代码时,都会分配一定尺寸的栈空间(Windows系统中为1M),每...
    yohn阅读 5,429评论 0 2
  • 你站在银杏树下, 拿着未完的作业, 倚在青灰色的水泥台阶上, 向窗里眺望着同伴, 发呆、等待着。 你可曾知道? 窗...
    老张的周小喵阅读 2,548评论 0 0