java编程值得注意的地方

柔光的暖阳◎ 2022-05-31 12:26 261阅读 0赞

持续更新. . . . . .

1、方法的参数是值传递

也就是说当调用者传入值后,无论方法内部怎么修改都不会影响到调用者调用前的赋值。

值得注意的是,当传入一个非基本类型数据时,方法内部修改了这个数据的内部数据时,这个操作会影响到外部调用者。

  1. package test;
  2. public class Test {
  3. public static void main(String[] args) {
  4. person p = new person("tang",20);
  5. setName1(p);//方法1调用 没有影响
  6. System.out.println(p);
  7. setName2(p);//方法2调用 改变了
  8. System.out.println(p);
  9. }
  10. /**
  11. * 不会影响
  12. * @param p
  13. */
  14. public static void setName1(person p){
  15. p = new person("guo",17);
  16. }
  17. /**
  18. * 会影响
  19. * @param p
  20. */
  21. public static void setName2(person p){
  22. p.name = "guo";
  23. p.age = 17;
  24. }
  25. }
  26. class person{
  27. public String name;
  28. public Integer age;
  29. person(String name,Integer age){
  30. this.name = name;
  31. this.age = age;
  32. }
  33. @Override
  34. public String toString() {
  35. return "person [name=" + name + ", age=" + age + "]";
  36. }
  37. }

2、递归的基本法则

1、基准情形,必须总要有某些基准情形,不使用递归就可以计算出结果(简单理解为递归的退出方式)。

2、不断推进,对于需要求解计算的一定是朝着基准情形方向的推进的。

举例最简单的求0-5之间的和,1.基准情形是当数字等于0时不需要计算就可以得到结果。2.数字从5开始朝着基准情形推进直到0.

  1. public static void main(String[] args) {
  2. System.out.println(f(5));
  3. }
  4. public static int f(int n){
  5. if(n == 0)
  6. return 0;
  7. else return f(n-1) + n;
  8. }

发表评论

表情:
评论列表 (有 0 条评论,261人围观)

还没有评论,来说两句吧...

相关阅读