Day3 java数组和方法的学习

Day3

Java方法

什么是方法

理解上,方法和C++的函数差不多,即实现某个功能语句块的集合,尽量保证一个方法只完成一个功能。

命名规则,首字母小写后面新单词大写 类似 studentLearn

方法的重载

在一个类里面方法名称相同但参数不同,名字可以相同

仅仅返回类型不同是无法构成重载的

编译器根据调用方法的参数个数,参数类型去匹配,如果失败,则报错

不过倒是想到一个,如果在不同的类但是有一个相同名称的方法需要调用,实验了一下发现只需要把这个类的包补缺就可以了

命令行传参

传递命令行参数给main函数实现,这个是第一次见,使用main函数

在实验的时候还爆了一个错,看了一会才发现用的for循环的变量i,设置的是<=args.length,导致数组溢出.

可变参数

也叫不定项参数,在方法声明中,在指定参数类型后面加一个省略号(...)

一个方法中只能声明一个可变参数,而且必须是方法的最后一个参数

也就是最后的一个参数相当于一个数组 这样相当于C++在调用数组是用指针来调用差不多,也差挺多,这个是直接就把数组取出来了

递归

总的来说就是自己调用自己,java运行死循环递归后会报错栈溢出

递归分两个部分

一个递归头,不调用自身,如果没有就会陷入死循环

一个递归体,调用自身

当初用C++递归来实现深搜,可以用java试一下

C++做一道算法题先

一道数学算法题,优化一下公式,把O(n3)优化到O(n2)结束,比较常规,可能给的数值比较小

不过做这个的时候倒是学了一个新方法,判断整数,因为浮点数有误差只能0.00000001,所以我用来判断整数的方式是一个向上取整一个向下取整,来判断两个值是否相等。这样就完成了判断整数。

数组

数组的声明和创建

int[] nums;  //首选
int nums[];  //和c++定义方法一样,但不是java的首选  就是让C++程序员适应的

使用new操作符来创建数组

int [] arrayname=new int[arraySize]

获取数组长度

array.length

内存分析

存放new的对象和数组

可以被所有线程共享,不会被存放在别的对象引用

存放基本变量类型(会包含基本变量的数值)

引用对象的变量(会存放这个引用在堆里的具体地址)

数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

方法区

可以被所有线程共享

包含了所有class和static变量

数组初始化

静态初始化和动态初始化

静态就是在声明的时候直接赋值,以后也就不能改了

动态初始化是声明后没赋值,数组一但分配空间之后,每个元素都会被隐式初始化。

下标越界

下标的合法区域在[0,length-1]

思考

方法就和C++的函数一样,比较容易理解。

数组的声明[]是连着类型符号一起的,当然C++那种创建数组的方式也可以。

数组也是对象,数组元素相当于对象的成员变量,毕竟和C++不同,java的数组还有方法可以用

明天继续二维数组和面向对象的学习。

posted @ 2022-09-17 23:49  青山隐隐丶  阅读(21)  评论(0编辑  收藏  举报