方法的基本结构
一、方法的概念(记忆)
是为完成一个操作而组合在一起的语句组
1.1 分类
内置方法 , 由官方提供的方法
自定义方法,手动编写的方法
二、内置方法(了解使用)
2.1 练习需要用到的内置方法
Math.pow(数值,2) , 求平方
Math.sqrt(数值) ,求开方
Math.acos() , 反余弦 , 临边比斜边
Math.toDegrees() , 传入弧度求角度
内置方法练习伪代码
变量 输入
提示并用变量接收
变量 A点x = ;
变量 A点y =;
变量 B点x =;
变量 B点x =;
变量 C点x =;
变量 C点y =;
变量 边a = Math.sqrt(Math.pow(C点x - B点x,2)+Math.pow(C点y - B点y,2));
变量 边b = Math.sqrt(Math.pow(A点x - C点x,2)+Math.pow(A点y - C点y,2));
变量 边c = Math.sqrt(Math.pow(A点x - B点x,2)+Math.pow(A点y - B点y,2));
变量 弧度A = Math.acos((a*a-b*b-c*c)/(-2*b*c));
变量 弧度B = Math.acos((b*b-a*a-c*c)/(-2*a*c));
变量 弧度C = Math.acos((c*c-b*b-a*a)/(-2*a*b));
变量 角度A = Math.toDegrees(弧度A);
变量 角度B = Math.toDegrees(弧度B);
变量 角度C = Math.toDegrees(弧度C);
2.2 内置方法使用注意(关键)
学会查看官方文档(API)
记忆类型所在包名
在文档的包位置查找对应包
找到包之后查找对应类名
展开类之后注意查看概要列表中的方法
查看方法详细描述2.3 常用内置方法
2.3 常用内置方法
// Arrays.toString() 直接输出数组
// Arrays.sort(); 给数组排序
// Arrays.copyOf(); 拷贝一个数组中的数据到一个新的数组中
// System.arraycopy(); 拷贝一个数组中的数据到另一个数组中
2.4 字面量与匿名数组
不给名字的变量称为字面量(没有名字的变量,匿名变量)
不给名字的数组称为匿名数组
三、自定义方法(掌握)
3.1 语法结构
修饰符 返回类型 方法名(参数1,参数2...){
方法体
[return 返回值]
}说明:
修饰符暂时记住 public static
返回类型可以是任意类型,当不需要返回时使用void
方法名规则与变量名规则一致
四、值传递与引用传递(记忆并掌握)
Java中的方法主要在虚拟机栈内存空间中执行。其中使用new 申请的数据主要存储在虚拟机堆空间中。对于引用类型(比如数组)而言,栈中主要存放数据的引用(或地址),堆中存放主要数据。
4.1 值传递
当一个方法(调用者)调用另外一个方法(执行者)传递参数数据类型为基本数据类型时发生。
调用者将自己的数据本身复制一份传递给执行者
在执行者内部对传递数据的修改不会影响调用者用于传递的数据
4.2 引用传递
当一个方法(调用者)调用另外一个方法(执行者)传递参数数据类型为引用数据类型时发生。
调用者将自己数据的引用(地址)复制一份传递给执行者
在执行者内部通过引用对存放在堆中的数据进行修改,由于修改的是堆中的数据,那么调用者再通过引用查看或者使用数据时,得到的是被执行者修改后的数据
五、不定长度参数(了解,可以运用更好)
在方法的参数列表的长度可以不受限制,传递任意多个
5.1 语法结构
方法定义
修饰符 返回类型 方法名(类型... 参数名){
// 方法中,参数名当成数组
// 方法操作
}
方法调用
方法名();
方法名(参数1);
方法名(参数1,参数2);
方法名(参数1,参数2,...);
说明:
在方法定义时,方法中代码可以将不定长度参数名当做数组使用。 如: 参数名.length ; 参数名[0]
在方法调用时,可以向调用方法传递不限制数量的参数个数
注意
不定长度参数只能放在参数列表中的最后一个位置
在一个方法中只能定义一个不定长度参数
六、方法重载(掌握)
6.1 概念
在同一个类型中,有多个名称相同,参数列表不同的方法
说明: 参数列表不同主要体现为
个数不同 , 两个或者多个方法参数的个数不相同
fn(int num),fn(int num1,int num2)
顺序不同,两个或者多个方法参数类型的顺序不同
fn(int num1,double num2),fn(double num1,int num2)
类型不同,两个或者多个方法参数个数相同时,各个参数的类型不相同
fn(int num),fn(long num)
七、变量作用域范围
局部变量
所有变量的作用域范围,
从定义的行开始,一直到所在代码块对应的大括号结束为止
在方法中声明的变量,成为局部变量
全局变量
在类中定义之后,类的所有范围都可以使用。如果需要在static方法中调用变量,则需要对变量使用static进行修饰
static 关键字
对类的成员进行修饰,让调用者可以通过定义者的类名+成员名(类名.成员名)进行调用