当前位置: 首页 > wzjs >正文

网站开发建设推荐用书淘宝网官方网站

网站开发建设推荐用书,淘宝网官方网站,做家政在哪个网站找,做鱫视频网站基本数据类型 对于基本数据类型(如 int、double、boolean 等),值传递不会影响原值。因为传递的是变量值的副本,方法内对副本的修改不会反映到原始变量上。 public class PrimitivePassingExample {public static void main(Stri…

基本数据类型

对于基本数据类型(如 intdoubleboolean 等),值传递不会影响原值。因为传递的是变量值的副本,方法内对副本的修改不会反映到原始变量上。

public class PrimitivePassingExample {public static void main(String[] args) {int num = 10;System.out.println("Before method call: " + num);modifyPrimitive(num);System.out.println("After method call: " + num);}public static void modifyPrimitive(int value) {value = 20;System.out.println("Inside method: " + value);}
}

在上述代码中,modifyPrimitive 方法接收的是 num 的一个副本,在方法内部修改这个副本的值不会影响到 main 方法中的 num 变量。

引用数据类型

当传递的是引用类型(如数组、对象等)时,传递的是对象引用的副本,这个副本和原始引用指向同一个对象。因此,在方法内部通过这个引用副本对对象状态进行修改,会影响到原始对象。

1. 数组
public class ArrayPassingExample {public static void main(String[] args) {int[] arr = {1, 2, 3};System.out.println("Before method call: " + java.util.Arrays.toString(arr));modifyArray(arr);System.out.println("After method call: " + java.util.Arrays.toString(arr));}public static void modifyArray(int[] array) {array[0] = 10;System.out.println("Inside method: " + java.util.Arrays.toString(array));}
}

在这个例子中,modifyArray 方法接收的是 arr 引用的副本,这个副本和 arr 指向同一个数组对象。在方法内部通过 array[0] = 10; 修改了数组的第一个元素,由于指向的是同一个数组,所以 main 方法中的 arr 数组也受到了影响。

2. 自定义对象
class Person {String name;public Person(String name) {this.name = name;}
}public class ObjectPassingExample {public static void main(String[] args) {Person person = new Person("Alice");System.out.println("Before method call: " + person.name);modifyPerson(person);System.out.println("After method call: " + person.name);}public static void modifyPerson(Person p) {p.name = "Bob";System.out.println("Inside method: " + p.name);}
}

这里 modifyPerson 方法接收的是 person 引用的副本,副本和 person 指向同一个 Person 对象。在方法内部修改了 p.name 的值,由于指向的是同一个对象,所以 main 方法中的 person 对象的 name 属性也被改变了。

不过需要注意的是,如果在方法内部让引用副本指向一个新的对象,这不会影响原始引用指向的对象。

class Student {String name;public Student(String name) {this.name = name;}
}public class NewObjectReferenceExample {public static void main(String[] args) {Student student = new Student("Tom");System.out.println("Before method call: " + student.name);changeStudent(student);System.out.println("After method call: " + student.name);}public static void changeStudent(Student s) {s = new Student("Jerry");System.out.println("Inside method: " + s.name);}
}

在 changeStudent 方法中,虽然让引用副本 s 指向了一个新的 Student 对象,但这不会影响 main 方法中 student 引用指向的原始对象,所以 student 对象的 name 属性保持不变。

结语:

综上所述,当传递引用类型的参数时,在方法内部通过引用副本修改对象的状态会影响到原始对象,但如果让引用副本指向一个新对象则不会影响原始对象。

http://www.dtcms.com/wzjs/110326.html

相关文章:

  • 网站 icp备案想学管理方面的培训班
  • 免费网站建设资讯软文营销的作用有哪些
  • 看想看的做想做的电影网站好软文推广是什么意思?
  • 做网站所需要的项武汉seo百度
  • 上海专业做网站公网站建设公司官网
  • 温州市乐清市疫情最新情况手机优化专家
  • 网站没有根目录成都私人网站建设
  • 代做安装预算的网站seo推广思路
  • 外国人做那个视频网站吗北京网站优化托管
  • asp简单网站开发郑州百度seo关键词
  • 网站建设备案查询各大网站收录查询
  • 怎么建设微信网站seo综合查询是什么
  • o2o网站开发价格如何进入网站
  • 做素材类的网站赚钱吗网站推广软件免费版
  • 南宁企业网站百度非企渠道开户
  • 用bootstrop制作一个网站百度信息流广告怎么投放
  • 网站建设项目立项登记 表如何制作一个自己的网站
  • 做律师事务所网站推广平台的方式有哪些
  • 天津哪里做网站广州seo托管
  • 深圳市建委网站seo网络推广师招聘
  • 个人建设网站制作新媒体口碑营销案例
  • 深圳外网站建设中国网络营销公司排名
  • 上海内贸网站建设seo公司运营
  • 钉钉企业注册流程百度seo综合查询
  • 网站建设服务费怎么做会计分录安卓手机优化大师官方下载
  • 网站建设保教电子商务营销模式有哪些
  • 南京做网站建设有哪些google下载手机版
  • 做猎头可以在哪些网站注册百度竞价怎么收费
  • 那些网站是用python做的360优化大师旧版本
  • 做自媒体在哪个网站好河北seo关键词排名优化