对课上问题的探究和思考2

所谓编程思维

在工程繁杂的项目里面,为了使得项目能够尽早地完成,不能只像愚公那样,一条路子走到底;而是要像李冰那样,学会去利用团队去更好地分配工作,更好地完成任务,这大概就是为什么“愚公移山”只存在在童话世界里面,而都江堰颇负盛名的原因了。

就像学习Java一样,不能只用一个方法走到底,不具有很好的可读性;这就要求我们在编程之前,需要理清楚自己的思路,将脑子里面的书整理好,才有了顺利地完成编程任务的前提。

当然,除了清晰的编程逻辑和灵活的编程思维之外,少不了平日里的练习

详解方法

1、JDK中的Math类

举例:Demo:TestMath.java中文件中的例子

其中,已知Math类中提供的均为静态方法,所以在主函数中可以直接调用;

那么,静态方法和非静态方法的区别是什么呢?

经过查找相关资料,可以得知,非静态方法在定义时并未分配内存,只有在调用该方法时才被分配内存;而静态方法在定义时就已经分配了内存

经过实验查证:静态方法只能调用静态成员或者方法;而非静态方法既能够调用非静态成员或者方法,也能能够调用静态成员或者方法

若是强行利用静态方法调用非静态成员或者方法,则会出现以下情况:

2、使用静态导入

所谓“静态导入”,即在导入类名时,import代表省略写包名,import static 代表直接省略类名

如下图所示:

同时也相当于一种全局变量:

举例:SquareInt.java 如图所示:

自定义了一个求平方数的静态方法

自定义Java方法示例,随机数生成方法示例:

一般使用方法:(int)(Math.random()*6)----代表从0到5的取值范围

示例:RandomInt.java

通过该示例,已了解并掌握随机数的生成方法

示例:使用Random类生成随机数

文件一:Demo:TestRandom.java


以此洒下随机数的种子,根据不同的数据类型得到不同种类的随机数值

文件二:Demo:TestSeed.java--以当前时间为随机数的种子进行生成随机数的操作

Random r=new Random(System.currentTimeMillis());

由图中结果可知:种子相同时,得到同一个随机数的概率较大,即随机数不一定永远随机,在次数增多的同时,随机数的取值可能会趋向于某一个数值

在使用当前时间作为种子时,随机数重复的概率较小,最好的“种子选手”

示例:随机数应用:RollDie.java--模拟骰子滚动的统计结果,并不是绝对平均的

3、动手动脑:编写一个实现纯随机数发生器

对了,别忘记将有关代码存储起来哦!放到一个代码仓库里面,那可比在搜索引擎里面的书海查找资料方便太多了!

4、示例:参数可变的方法--VariableArgumentsTest.java

...用在变量和变量名之间,前后有无空格均可

隐含创建一个数组,在方法体中以数组的形式访问可变参数

5、动手动脑--Demo:MethodOverLoad.java

这两个方法名相同,但是用途不同,一个承载int类型,一个承载double类型,参数个数相同,但能够区分

上述所示,即为“方法重载”--方法名相同,参数类型不同 or 参数个数不同 or 参数类型的顺序不同

注意:方法的返回值不作为方法重载的判断条件

发现:

它是一个静态方法,只能在main中使用

6、递归

简言之:自己调用自己,但有调用循环的退出条件

示例:Demo:CalculateN.java---求n!

递归:先从大到小,再从小到大;
规模逐渐递减;
必须要保证递归调用的过程可以终结

每个递归函数的开头一定是判断递归结束条件是否满足的语句

至少有一句是“自己调用自己”的

一定有一个控制递归可以终结的变量

递归:----->------->------>|
<----<-----<----<----|

递推:---->----->----->---->

7、处理大数字与浮点数

计算机中的基本类型处理起来数据,它们的大小是有限度的,因此无法处理较大的数字和并不精确的小数

处理大数字:BigInteger类

处理浮点数:BigDecimal类

课上测试请期待下一篇博客哦!

posted @ 2022-09-17 17:17  yesyes1  阅读(17)  评论(0编辑  收藏  举报