源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javz笔记之:有趣的静态方法的使用

  • 时间:2022-12-30 00:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javz笔记之:有趣的静态方法的使用
[u]复制代码[/u] 代码如下:
import java.util.*; public class welcome {     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);           percent = tripleValue(percent);           System.out.println("After: percent =" + percent);  //这里输出为30了!正常的结果           /*            * 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("Bob", 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 double tripleValue(double x) // doesn't work        {           return x = 3 * x;           //System.out.println("End of method: x=" + x);        }        public static void tripleSalary(Employee x) // works        {           x.raiseSalary(200);           System.out.println("End of method: salary=" + x.getSalary());        }        public static void swap(Employee x, Employee y)        {           Employee 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 // simplified Employee class     {        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;        }        private String name;        private double salary;     }
如果是以下代码:System.out.println("After: percent =" + percent);  //这里输出为10了!因为静态方法达不成你要的效果 这是因为静态方法不能对对象产生效果,和静态域一样,[b]它属于类,不属于任何对象[/b]。
[u]复制代码[/u] 代码如下:
/**  * This program demonstrates parameter passing in Java.  * @version 1.00 2000-01-27  * @author Cay Horstmann  */ 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("Bob", 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) // works    {       x.raiseSalary(200);       System.out.println("End of method: salary=" + x.getSalary());    }    public static void swap(Employee x, Employee y)    {       Employee 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 // simplified Employee class {    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;    }    private String name;    private double salary; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部