第三周 7.17LJY关于方法参数的一些理解

在java中采用的是按值调用.也就是得到的是变量的一个拷贝

class Text22 {
    static int i = 1;
    public static void main(String[] args) {

        System.out.println(triple(i));
        System.out.println(i);

    }

    public static int triple(int x) {
         int result = x * 3;
         return result;
    }
}

其输出结果为3, 1;所以方法参数只是引用的变量的拷贝无法对变量值进行修改.但是却可以修改对象里的参数,这是因为对象本身即是一个拷贝方法参数与对象本就是指向的同一个拷贝的地址,所以其修改值,就好比创建的对象,类就好比一个模板,创建对象就是用模板做的一个拷贝,大家都是对对象进行操作,无论怎么折腾拷贝,也不会对模板造成影响.这是我的一个比较粗浅的理解.

class Text22 {

    public static void main(String[] args) {
        Person p1 = new Person("强森");
        Person p2 = new Person("伪娘");
        change(p1,p2);
        System.out.println(p1.name + p2.name);

    }

    public static void change(Person x,Person y) {
         Person temp = new Person("xxx");
         temp = x;
          x = y;
          y = temp;
          System.out.println(x.name + y.name);
    }
}

class Person {
    String name;
    public Person(String name) {
        this.name = name;

    }
}

运行结果为;伪娘强森

      强森伪娘,证明方法内对象x,y成功互换了,但是p1,p2并没有互换,证明传过去的只是其拷贝,只是传值,,其只在方法内俩个拷贝进行了互换.方法并不能使一个对象参数引用其他对象参数,

总结一下,1.一个方法无法修改一个基本类型的数据.

    2.一个方法可以改变一个对象参数的使用情况.

    3.一个方法不能让对象参数引用一个新的对象.(到方法参数上的时候,方法里操作的是这俩个对象的拷贝)

原文地址:https://www.cnblogs.com/lijuenyi/p/9324799.html

时间: 2024-10-30 06:18:45

第三周 7.17LJY关于方法参数的一些理解的相关文章

赵栋 201771010137 第三周学习总结

自主学习任务 1. 复习课程第1-3章学习内容 2. 回顾实验三中实验题1<2018秋季西北师范大学面向对象程序设计(Java)(ch1-ch3)测试题1>,对照测试题参考答案,反思修改本人答卷的错误内容: 3.完成实验2与实验3: 4.修改置顶博文<面向对象程序设计课程学习进度条>,记录第三周个人编程水平提升参数 第一部分:复习第一到三章 1.第一章 复习了Java语言的优点,发展简史,以及Java语言的关键术语和"白皮书"的特性,对Java的了解更加深刻了一

bean的创建(五)第三部分 bean工厂方法参数的解析

准备好一系列参数之后,开始参数类型的转换,方法参数的对应. ConstructorResolver.createArgumentArray private ArgumentsHolder createArgumentArray( String beanName, RootBeanDefinition mbd, ConstructorArgumentValues resolvedValues, BeanWrapper bw, Class<?>[] paramTypes, String[] par

java第三周学习总结

学号20145336 <Java程序设计>第3周学习总结 教材学习内容总结 类与对象: 面向对象:三大特征:封装,继承,多态. 开发就是找对象使用,没有对象,就创建一份对象.找对象,建立对象,使用对象,维护对象的关系. 类和对象的关系: 类就是对心事生活中的食物的描述.对象就是这类事物,实实在在存在的个体. 描述对象事物的属性和行为 属性对应类中变量,行为对应类中的函数(方法) 其实定义类,就是描述事物,就是在定义属性和行为,属性和行为共同成为类中的成员(成员变量和方法) 对象的指定方式是对象

20145301第三周学习总结

20145301第三周学习总结 教材学习内容总结 第四章 4.1 类与对象 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制 从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象 从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction) 类是对象的设计图,对象是类的实例,生成对象要先定义类 4.2 基本类型包装 Long.In

Coursera系列-R Programming第三周-词法作用域

完成R Programming第三周 这周作业有点绕,更多地是通过一个缓存逆矩阵的案例,向我们示范[词法作用域 Lexical Scopping]的功效.但是作业里给出的函数有点绕口,花费了我们蛮多心思. Lexical Scopping: The value of free variables are searched for in the environment where the function was defined. 因此 make.power<-function(n){ pow<

20155335俞昆《java程序设计》第三周总结

20155335  2006-2007-2  <Java程序设计>第三周学习总结 ##  教材学习内容总结 首先,关键是区基本类型和类类型,,产生对象必须定义类,类是一个概念,并不存在,对象是存在的,符合累的定义,Java程序由一个个类构成类的里面是变量和函数, 主函数在类中形成的代码如下 Public  class  Mytest{ Public  static  void  main(String  args[  ]){ } } 类定义使用class关键词. 对象和引用的关系 Java中,

第三周博客问题总结

1.学会了```的用法 一开始并没有成功,后来发现是因为输入法没有切换成英文,今后这样的问题要避免出现.--20145106 2.问题:教材86页,Guess的代码,猜数字,不知道原先没有设定好一个数字,为什么可以在0-9之间猜中一个数 解答:百度了(Math.random()10)这行代码的意思,知道了(Math.random())的意思是在[0,1)之间随机产生一个数字,10,所以变成了[0,10)之间随机产生一个数字,所以可以进行猜数字 --20145123 3.IntegerCache.

20142335郝昊第三周学习总结

20145335郝昊 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 类与对象 定义: 对象(Object):存在的具体实体,具有明确的状态和行为. 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制. -关系: 从类看对象:类定义可视为具有类似性质与共同行为的对象的模板,用来产生对象. 从对象看类:类的产生,是实例,推广到大量相似实例的抽象化过程. 二者的关系:类是对象的设计图,对象是类的实例,生成对象要先定义类. 特点: 与c语言

20145319 第三周学习总结

20145319 <Java程序设计>第三周学习总结 教材学习内容总结 本周学习教材第四.五章,这两章主要讲述了java语言中“对象”的相关知识,认识对象以及对象封装. 1. 类与对象 定义:对象是java语言中极为重要的一环,在使用java编写程序时基本离不开对象,而java中有基本类型和类类型两种类型系统,在使用对象前就需先定义类(Class),类是对象的设计图,对象是类的实例 使用事项: 1对象的一些使用和c语言中的指针极为相似,例如Clothes c1 = new Clothes();