Java SE 第五章

第5章 函数
5.1 方法定义
※ 修饰符
Java SE 第五章
Java SE 第五章
※ 返回值类型
返回值类型是需要什么就写什么。
※ 函数名

※ 参数列表

※ 函数体
修饰符返回值类型函数名(形式参数类型1 参数名1,形式参数类型2 参数名2,形式参数类型3 参数名3…)

{

函数体语句;

return 返回值;

}
5.2 方法调用
※ 函数调用函数

※ 函数递归调用

5.3 实际参数和形式参数
※ 实际参数
是在执行时,调用函数或过程时,传递给函数或过程的参数。通俗讲就是实际值。
※ 形式参数
就是在定义函数或过程的时候命名的参数。通俗讲就是一个记号。形参就是定义函数时候的参数表,只是定义了参数表的结构和用来引用的名字,并没有具体的内容。
实参是调用函数传递的具体数据。
※ 参数传值

5.4 方法重载
※ 方法重载的定义
如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载。
※ 方法重载的条件
方法名相同
方法的参数类型,参数个不一样
方法的返回类型可以不相同
方法的修饰符可以不相同
main 方法也可以被重载
※ 方法重载的注意项
参数列表必须相同
重载和参数变量名无关
重载和返回值类型无关
重载和修饰符无关
5.5 变量的作用域
※ 局部变量
“在函数内定义的变量”,

即在一个函数内部定义的变量,只在本函数范围内有效。
※ 全局变量
“在函数外定义的变量”,

即从定义变量的位置到本源文件结束都有效。  
5.6 常用数学函数
※ 三角函数
Java SE 第五章
※ 指数函数
Java SE 第五章
※ 取整函数
Java SE 第五章
※ 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) + " ");
}
※ 示例:计算三角形的角度
Java SE 第五章

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相关函数
※ 求字符串长度
※ 从字符串中获取字符
※ 连接字符串
※ 字符串的转换
※ 从控制台读取字符串
※ 从控制台读取字符
Java SE 第五章
※ 字符串比较
Java SE 第五章
※ 获取字符串中的字符或子串
Java SE 第五章
※ 字符串和数字间的转换

※ 示例:将十六进制数转换为十进制数
Java SE 第五章