corejava第7版
This commit is contained in:
1 parent
e89542a214
commit
fa8d1a5860
493 files changed
+105995
No files matched your search
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
@version 1.1 2004-02-21
|
||||
@author Cay Horstmann
|
||||
*/
|
||||
|
||||
import java.lang.reflect.*;
|
||||
|
||||
public class MethodPointerTest
|
||||
{
|
||||
public static void main(String[] args) throws Exception
|
||||
{
|
||||
// get method pointers to the square and sqrt methods
|
||||
Method square = MethodPointerTest.class.getMethod("square", double.class);
|
||||
Method sqrt = Math.class.getMethod("sqrt", double.class);
|
||||
|
||||
// print tables of x- and y-values
|
||||
|
||||
printTable(1, 10, 10, square);
|
||||
printTable(1, 10, 10, sqrt);
|
||||
}
|
||||
|
||||
/**
|
||||
Returns the square of a number
|
||||
@param x a number
|
||||
@return x squared
|
||||
*/
|
||||
public static double square(double x)
|
||||
{
|
||||
return x * x;
|
||||
}
|
||||
|
||||
/**
|
||||
Prints a table with x- and y-values for a method
|
||||
@param from the lower bound for the x-values
|
||||
@param to the upper bound for the x-values
|
||||
@param n the number of rows in the table
|
||||
@param f a method with a double parameter and double return value
|
||||
*/
|
||||
public static void printTable(double from, double to, int n, Method f)
|
||||
{
|
||||
// print out the method as table header
|
||||
System.out.println(f);
|
||||
|
||||
double dx = (to - from) / (n - 1);
|
||||
|
||||
for (double x = from; x <= to; x += dx)
|
||||
{
|
||||
try
|
||||
{
|
||||
double y = (Double) f.invoke(null, x);
|
||||
System.out.printf("%10.4f | %10.4f%n", x, y);
|
||||
}
|
||||
catch (Exception e) { e.printStackTrace(); }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user