手机
当前位置:查字典教程网 >编程开发 >Java >javz笔记之:有趣的静态方法的使用
javz笔记之:有趣的静态方法的使用
摘要:复制代码代码如下:importjava.util.*;publicclasswelcome{publicstaticvoidmain(Str...

复制代码 代码如下:

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了!因为静态方法达不成你要的效果

这是因为静态方法不能对对象产生效果,和静态域一样,它属于类,不属于任何对象。

复制代码 代码如下:

/**

* 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;

}

【javz笔记之:有趣的静态方法的使用】相关文章:

解析Java实现随机验证码功能的方法详解

javafx实现图片3D翻转效果方法实例

Java中一些基础概念的使用详解

java 全角半角字符转换的方法实例

基于java中子类的继承性的应用介绍

java中关于Map的三种遍历方法详解

Java中 shuffle 算法的使用

java 文件名截取方法

Java调用.dll文件的方法

java 使用简单的demo实例告诉你优化算法的强大

精品推荐
分类导航