java方法
方法定义

- 格式:类.对象.方法

-
add函数中a与b为形式参数,用来定义作用的
-
sum = add(a:1,b:2)中的1和2为实际参数,实际调用传递给它的参数

方法调用

-
max方法的调用,被当作一个值(调用方法第一种:有返回值类型)。
-
System.out.println()方法调用(形式:类.对象.方法),是一条语句(调用方法的第二种,无返回值的)。



-
num1与num2相等时结果如下:
-
其中,0返回给了max,用于文字输出。说最大值为0,表明此句不可信,要看前边的"num1==num2"。也可以直接返回其中一个值,结果显示就正确



-
Java是值传递(拷贝),没有指针(引用传递/指针传递)
方法重载

-
重载是指:①函数名称相同,但形参类型不同的函数。②函数名称相同,但形参数量不同的函数。③函数名称相同,但形参排列顺序不同的函数。④与返回值类型无关



-
通过有返回值调用时,传递不同类型的参数,进行分开调用
-
形参与实参的类型要一致:自己的程序中,为执行程序交互输入型,要同时可重载max函数的int返回型与max函数的double返回型,需要修改对应输入处为较高的数据类型(如int->double)

-
需注意:=========================================

===================================================


命令行传参

Dos进入对应目录,输入javac Demo03.java进行文件编译


输入java Demo03加载对应程序,但直接加载是不行的

需要退回到src目录,输入完整路径名才可加载

但未输出任何值,因为原函数并未传参,为空的字符串组

此时用命令行传参

可变参数

输出的是:不定项参数i的对应数组的地址

输出多个参数

可变参数只能作为最后一个参数,且一个函数只能由一个可变参数

-
可变参数本质是数组



递归算法

-
java采用栈基址,每一次方法占用一个栈空间,结束才释放,递归会不断压栈
-
能不用递归就不用递归**,主要学习思想。**其他算法也能实现递归的作用,除非基数小
-
n的阶乘


***作业:计算器(重要)***
代码-仅两位数四则运算
-
虽远未达标,但收获很多,以后完善
-
先想使用场景,才会有对应的编程思路

-
中间为注释,会在后续截图


代码优化
-
如果要实现继续运用上一次的值进行运算,可以将运算后的结果给到num1,之后再次scanner输入num2;则scanner 给num1的值只需要一次,提到do while循环之外。或者用switch?(switc进行用户输入选择,比如继续运算,还是clr还是+、-等)



问题与学习
next()与nextLine()一起使用时。
https://blog.csdn.net/hello_word2/article/details/54895106
理解:
-
next()可认为是自带“空白符”+“我们按下的enter”
-
nextLine()可认为是只有“我们按下的enter“
-
出问题1

-
解决


-
出问题2

-
解决

字符串比较用equals。
https://www.cnblogs.com/Dreamice/p/7809605.html


scanner关闭时间

字符串不相等判定公式
https://blog.51cto.com/u_10865693/2403660?b=totalstatistic

浙公网安备 33010602011771号