Java中方法参数使用

来源:互联网 发布:渔夫帽牌子知乎 编辑:程序博客网 时间:2024/05/16 17:23

关于Java中方法参数的使用情况:

  • 1一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)。 –> 见ParamTest之Test 1
  • 2一个方法可以改变一个对象参数的状态。–> 见ParamTest之Test 2
  • 3一个方法不能让对象参数引用一个新的对象。–>见ParamTest之Test 3

ParamTest.java:

/** *This program demonstrates parameter passing in Java. *@version 1.01 2016-12-28 *@author NPJ*/public class ParamTest {    public static void main(String[] args) {        /*              *Test 1: Methods can't modify numeric parameters               *一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)              */             System.out.println("Testing tripleValue:");         double percent = 10;         System.out.println("Before:percent=" + percent);         tripleValue(percent);         System.out.println("After:percent=" + percent);         /*               *Test 2: Methods can change the state of object parameters               *一个方法可以改变一个对象参数的状态               */         System.out.println("\nTesting tripleSalary:");         Employee harry = new Employee("Harry",50000);         System.out.println("Before:salary=" + harry.getSalary());         tripleSalary(harry);         System.out.println("After:salary=" + harry.getSalary());         /*               *Test 3:Methods can't attach new objects to object parameters               *一个方法不能让对象参数引用一个新的对象               */          System.out.println("\nTesting swap:");          Employee a = new Employee("Alice",70000);          Employee b = new Employee("Bod",60000);          System.out.println("Before:a=" + a.getName());          System.out.println("Before:b=" + b.getName());          swap(a,b);          System.out.println("After:a=" + a.getName());          System.out.println("After:b=" + b.getName());    }       public static void tripleValue(double x) { //doesn't work            x = 3 * x;            System.out.println("End of method:x=" + x);    }    public static void tripleSalary(Employee x) {            x.raiseSalary(200);            System.out.println("End of mehod:salary=" +     x.getSalary());     }     public static void swap(Employee x,Employee y) {            Employee temp;            temp = x;            x = y;            y = temp;            System.out.println("End of method:x=" + x.getName());            System.out.println("End of method:y=" + y.getName());      }}class Employee {    private String name;    private double salary;    public Employee(String n,double s) {        name = n;        salary = s;     }       public String getName() {        return name;        }    public double getSalary() {        return salary;      }    public void raiseSalary(double byPercent) {        double raise = salary * byPercent / 100;        salary += raise;        }}/*          Testing tripleValue:    Before:percent=10.0    End of method:x=30.0    After:percent=10.0    Testing tripleSalary:    Before:salary=50000.0    End of mehod:salary=150000.0    After:salary=150000.0    Testing swap:    Before:a=Alice    Before:b=Bod    End of method:x=Bod    End of method:y=Alice    After:a=Alice    After:b=Bod*/
1 0
原创粉丝点击