Java SE 第五章
第5章 函数
5.1 方法定义
※ 修饰符
※ 返回值类型
返回值类型是需要什么就写什么。
※ 函数名
※ 参数列表
※ 函数体
修饰符返回值类型函数名(形式参数类型1 参数名1,形式参数类型2 参数名2,形式参数类型3 参数名3…)
{
函数体语句;
return 返回值;
}
5.2 方法调用
※ 函数调用函数
※ 函数递归调用
5.3 实际参数和形式参数
※ 实际参数
是在执行时,调用函数或过程时,传递给函数或过程的参数。通俗讲就是实际值。
※ 形式参数
就是在定义函数或过程的时候命名的参数。通俗讲就是一个记号。形参就是定义函数时候的参数表,只是定义了参数表的结构和用来引用的名字,并没有具体的内容。
实参是调用函数传递的具体数据。
※ 参数传值
5.4 方法重载
※ 方法重载的定义
如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载。
※ 方法重载的条件
方法名相同
方法的参数类型,参数个不一样
方法的返回类型可以不相同
方法的修饰符可以不相同
main 方法也可以被重载
※ 方法重载的注意项
参数列表必须相同
重载和参数变量名无关
重载和返回值类型无关
重载和修饰符无关
5.5 变量的作用域
※ 局部变量
“在函数内定义的变量”,
即在一个函数内部定义的变量,只在本函数范围内有效。
※ 全局变量
“在函数外定义的变量”,
即从定义变量的位置到本源文件结束都有效。
5.6 常用数学函数
※ 三角函数
※ 指数函数
※ 取整函数
※ min、max和abs方法
Math.min(n1,n2) n1和n2之间的最小值
Math.max(n1,n2) n1和n2之间的最大值
Math.abs(n) 求n的绝对值
※ random方法
Math.random() 产生一个[0,1)的随机数
※ Random类
Random():创建一个新的随机数生成器。
Random(long seed):使用单个 long 种子创建一个新的随机数生成器。
第一种构造方法是使用默认当前系统时间的毫秒数作为种子数:Random r1 = new Random();
Random random = new Random();
int randomNumber1= random.nextInt(100);
第二种方法是使用自己指定的种子数
Random random1 = new Random(100);
for(int i = 0; i < 10; i++){
System.out.print(random1.nextInt(10) + " ");
}
发现只要种子数和nextInt()中的参数一致的话,每次生成的随机数都是一样的(所以这是伪随机数)。
System.out.println("\n使用同一种子生成的随机数如下:");
Random random2 = new Random(100);
for(int i = 0; i < 10; i++){
System.out.print(random2.nextInt(10) + " ");
}
※ 示例:计算三角形的角度
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//1.输入三个点的坐标
System.out.print("Enter three points:");
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
double x3=scanner.nextDouble();
double y3=scanner.nextDouble();
//2.根据坐标计算三条边
double a=getDistance(x2, y2, x3, y3);
double b=getDistance(x1, y1, x3, y3);
double c=getDistance(x1, y1, x2, y2);
//3.根据三边计算三个角的角度
double A=getDegree(a,b,c);
double B=getDegree(b, a, c);
double C=getDegree(c, a, b);
System.out.println("The three angles are "+A+","+B+","+C);
}
public static double getDegree(double acrossSide,double neighberSide1,double neighberSide2){
//弧度值
double degree=Math.acos( (Math.pow(acrossSide, 2)-Math.pow(neighberSide1, 2)-Math.pow(neighberSide2, 2))/(-2*neighberSide1*neighberSide2) );
//将弧度值转换为角度值 并返回
return Math.toDegrees(degree);
}
public static double getDistance(double x1,double y1,double x2,double y2){
double distance=Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2));
return distance;
}
}
5.7 String相关函数
※ 求字符串长度
※ 从字符串中获取字符
※ 连接字符串
※ 字符串的转换
※ 从控制台读取字符串
※ 从控制台读取字符
※ 字符串比较
※ 获取字符串中的字符或子串
※ 字符串和数字间的转换
※ 示例:将十六进制数转换为十进制数