当前位置:   article > 正文

java中的全局参数(int)传递_java可以传递的int

java可以传递的int

问题引出:

int类型是不能做引用传递的,所以多个方法用到同一个数值就显得有些麻烦,而且也没有extren关键字。

如果在类变量中使用定义要使用的数值也是不可以的,因为类变量是根据类同存在的,所以如果类一直存在,多次调用这个类变量就会使数值一直叠加。所以也不可被使用。

实现:

1.新建对象类在对象中定义数值变量,这样可以在全局方法中传递对象以实现数值的引用。

2.使用数组进行传递。

  1. Integer[] errorCount = new Integer[1];
  2. errorCount[0] = 0;

3.未找到的更优解。

探究:

先看三个例子:

1.基本类型传递

  1. public class Test {
  2. public static void main(String[] args) {
  3. int num = 0 ;
  4. changeNum(num);
  5. System.out.println("num="+num);
  6. }
  7. private static void changeNum(int num) {
  8. num = 1;
  9. }
  10. }

结果:

num=0

 

2.封装类型传递(引用类型)

  1. public class Test {
  2. public static void main(String[] args) {
  3. Product p = new Product();
  4. p.setProName("before");
  5. p.setNum(0);
  6. changeProduct(p);
  7. System.out.println("p.proName="+p.getProName());
  8. System.out.println("p.num="+p.getNum());
  9. }
  10. private static void changeProduct(Product p) {
  11. p.setProName("after");
  12. p.setNum(1);
  13. }
  14. }
  15. class Product {
  16. private int num;
  17. private String proName;
  18. public int getNum() {
  19. return num;
  20. }
  21. public void setNum(int num) {
  22. this.num = num;
  23. }
  24. public String getProName() {
  25. return proName;
  26. }
  27. public void setProName(String proName) {
  28. this.proName = proName;
  29. }
  30. }

结果:

p.proName=after和p.num=1

 

3.String(String是一种特殊的引用类型所以在进行引用传递时,jvm进行了特殊处理,并不会改变原始值)

  1. public class Test {
  2. public static void main(String[] args) {
  3. String str = "ab";
  4. changeString(str);
  5. System.out.println("str="+str);
  6. }
  7. private static void changeString(String str) {
  8. str = "cd";
  9. }
  10. }

结果:

str=ab

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/541345
推荐阅读
相关标签
  

闽ICP备14008679号