方法
2019-09-29 17:58 老九君 阅读(131) 评论(0) 编辑 收藏 举报方法
1.方法的种类
①内置方法
●由JDK类库提供
●需要导入相应的包
java.lang.*(默认导入,不手动导入也可以使用)
System.out------输出
System.in------输入
System.out------退出程序
Math.random();------生成[0, 1)内的随机数
Integer.parseInt();------将括号内数据转换成整型
java.util.*(java的工具包)
Calendar.getInstance();------获得指定时间点
Arrays.sort();------方法的种类
①内置方法
●由JDK类库提供
●需要导入相应的包
javax.swing.*
Collections.binarySearch();
JoptionPane.showMessageDialog();
②自定义方法
●不带参数
●带参数
可以发现,num1和num2的值并没有变化,原因是:方法里的num1和num2是形参,通俗来说是main函数内num1和num2的副本,它们虽然和main函数内的num1和num2的值一样,但是在虚拟机中的哈希码不一样(可以理解为地址不一样),改变方法中num1和num2的值不会改变main函数内num1和num2的值。
就好比你叫蔡徐坤,他也叫蔡徐坤(有着同样的名字),你们都会打篮球(有着同样的值),但是他练习时长两年半,而你没有练习,所以他当了NBA形象大使,他的值就改变成NBA形象大使,虽然你们都叫蔡徐坤,但是你的值没有变,你还是只会打篮球,没有成为NBA形象大使。
2.一些知识点
●static修饰的方法一般被称作静态方法。
●方法名前加上static方便在没有创建对象的时候调用,如果不在静态方法的类中,那么就需要使用类名.静态方法的方式调用静态方法。在调用不同包的静态方法时,需要首先导入包。
●java.util.*加*代表导入包内所有的类。
●静态方法的名字首字母1大写
3.三角函数
Math.PI/Math.E------圆周率的近似值/算术常量e的值
Math.sin(radians)------返回角度的三角正弦函数值(以弧度为单位)
Math.cos(radians)------返回角度的三角余弦函数值
Math.tan(radians)------返回角度的三角正切函数值
Math.toRadians(degress)------将以度为单位的值转换为弧度
Math.toDegress(Radians)------将以弧度为单位的值转换为度
Math.asin(radians)------返回角度的反三角正切函数值
Math.acos(radians)------返回角度的反三角余弦函数值
Math.atan(radians)-----返回角度的反三角正切函数值
4.数学函数
Math.exp(x)------返回算术常量e的x次方
Math.log(x)------返回以e为底x的对数--Math.log(Math.E)的值为1.0
Math.log10(x)------返回以10为底x的对数
Math.pow(a, b)------返回a的b次方
Math.sqrt(x)------对于0以上的数字,返回x的平方根
5.取整方法
Math.ceil(x)/Math.floor(x)------向上/向下取整最接近x的整数
Math.rint(x)------取整最接近x的的整数,如果距离相等,则返回偶数
Math.round(x)------四舍五入取整--返回(int/long)Math.floor(x + 0.5)
6.递归
递归需要包含:递归头(没有递归头将陷入死循环),递归体(什么时候需要调用自身的方法)
以下为我原来c语言老师所写
*************** 变量的存储类别,局部与全局变量 ***************
局部变量:函数内定义的变量,局部可见
全局变量:函数外定义的变量,全局可见
四种存储类别:auto, register, static, extern
|
生存期(变量在时间上的有效范围) |
作用域(变量在空间上的有效范围) |
(auto)局部变量 |
定义->所在函数(语句块{})执行结束 |
所在函数函数(语句块{})内部 |
(static)局部变量 |
定义->整个程序结束 |
所在函数函数(语句块{})内部 |
全局变量(默认为 extern) |
定义->整个程序结束 |
定义->整个程序末尾 |
(static)全局变量 |
定义->整个程序结束 |
所在源程序文件内部 |
静态和全局变量都在静态数据区,变量默认初始值为 0;
形式参数的变量,本质是局部变量,属于其所在的函数,且只在其函数范围内有效。
*************** 递归 ***************
递归:函数调用自身,就像电影中的“梦中梦”,梦醒的时刻所在的地方一定是当初做梦的地方;同样,某一次递归 调用结束时所在的地方一定是上一次函数调用的地方。
递归是函数层面上的循环,也要注意查看三要素。
函数调用是在栈上完成的,所以,递归调用后面的执行语句与调用顺序刚好相反。例如:
void digui(int a)
{
if (a > 0)
{
digui(a-1); //递归调用
printf("%d ", a); //输出语句在递归调用之后执行
}
}
int main()
{
digui(5); // 递归调用过程中,每次得到的参数顺序是 5 4 3 2 1,但是输出则是逆过程
return 0;
}
板书代码:https://paste.ubuntu.com/p/NZqWGgPRRv/
*************** 数组 ***************
数组是一种构造数据类型,特点:同类型,连续存放
数组定义格式: 类型名 数组名[常量(长度)]
注意:①数组长度用常量,长度最好比问题的边界值稍大;②数组之间不能整体直接赋值
数组元素的引用:数组名[下标]
注意:①下标从 0 开始;②不要越界访问
数组作为函数形式参数的格式: 类型名 数组名[] 函数调用时,实际参数格式: 数组名 数组做参数时,数组和数组长度成对出现于参数中;实参中的数组和形参中的数组,都是同一个数组,即 实参数组。 板书代码: https://paste.ubuntu.com/p/RQpFQyRhR3/ https://paste.ubuntu.com/p/8FcqMzMZMd/
老九学堂会员社群出品