Java学习笔记Day03

数组

数组概述
数组是一种线性数据结构,它由一组按顺序排列的元素组成。每个元素都有一个唯一的索引,用于
访问和操作该元素。数组可以包含任意类型的数据,如整型、浮点型、字符中型。
优点:快速访问和搜索速度。
缺点:插入和删除操作可能会导致大量元素的移动。从而影响性能。
数组与类、接口,是 引用类型 中的一种;
Java 的数组 长度一经确定不能改变 例如,一个数组的长度是 10 ,那么最多能存 10 个数据,如果保存第 11 个就会出错;
数组在内存中是 连续分配 ,所以读取速度快
使用数组变量名
.length 可以返回数组的长度
定义数组的几种方式
数据类型 [] 数组名称 =new 数据类型 [ 长度 ]; // 常用
数据类型 数组名称 [] =new 数据类型 [ 长度 ];
数据类型 数组名称 []={ 1, 2,….}; //常用
数组工具类
Java API 中有一个类 Arrays ,定义了大量的 sort方法,可以对数组中元素进行排序;​​​​​​​
sort() :用来对 array 进行排序。
binarySearch() :在排好序的 array 中寻找元素。
Arrays.asList(array): 将数组 array 转化为 List ( 此种方法不正规)​​​​​​​
冒泡排序
冒泡排序主要的思想是进行相邻的两个元素之间比较并且交换,有利于利用原有元素在集合中的位
置优势,冒泡排序的原则是大的下沉小的上浮(跟最终的排序要求保持一致)
第一轮的排序,首先比较前两个元素 , 如果顺序与升序相反则交换 , 否则什么也不做
然后 , 依次比较第二位与第三位 , 第三位与第四位 ,…..
冒泡排序速记口诀(升序)
N 个数字来排队
两两相比小靠前
外层循环 N-1
内层循环 N-1-i
代码框架
for (i = 0; i < N-1 ; i++){
for (j = 0; j < N-1-i ; j++){
// 比较 j j+1 位置的元素
// 如果前大后小就交换
}
}
代码
总结:
数组
数组就是一组数据的集合,其表现形式就是内存中的一段连续的内存地址,是一种线性数据结构。
冒泡排序:
冒泡排序是最简单、最常用的排序方法。其基本思想是:在待排序的一组数据中,将相领的两个数
进行比较,若前面的数大于后面的数则交换两数,否则不交换 ;如此重复直至最终完成排序。因此可得,在排序过程中,大的数据往下沉,小的数据往上浮,就像气泡一样,于是将这种排序算法形象地称为冒泡排序
 
面向对象
面向过程 : 自己的事情自己干 , 代表语言 C 语言
洗衣服 : 每一步自己要亲力亲为 -> 找个盆 , 放点水 , 找个搓衣板 , 搓搓搓
面向对象 : 自己的事情别人帮忙去干 , 代表语言 Java 语言
洗衣服 : 自己的事情别人干 -> 全自动洗衣机
什么时候使用面向对象思想编程 :
调用别人的功能时
在一个类中想使用别的类中的成员时 , 就使用面向对象思想编程
至于我们使用的功能人家怎么实现的 , 我们不需要关心 , 我们只需要知道怎么使用即可
怎么使用面向对象思想编程 :
1.new ,new 完点呀 -> 点代表的是调用
2.特殊 : 如果调用的成员带 static 关键字 , 我们不需要 new,我们直接类名点即可
( 实体类 )_class
1. 测试类 : main 方法的类 , 主要是运行代码的
2. 实体类 : 是一类事物的抽象表示形式
世间万物的分类 : 比如 : 人类 狗类 猫类 鼠标类
​​​​​​​
组成部分 :
1. 属性 ( 成员变量 ): 这一类事物有啥
a . 定义位置 : 类中方法外
b . 作用范围 : 作用于当前类
c . 定义格式 : 数据类型 变量名
d . 默认值 :
整数 : 0
小数 : 0.0
字符 : '\u0000'
布尔 : false
引用 : null
2.行为 ( 成员方法 ): 这一类事物都能干啥
对象
1. 概述 : 一类事物的具体体现
2. 使用 :
a . 导包 : import 包名 . 类名
如果两个类在同一个包下 , 想要使用对方的成员不需要导包
如果两个类不在同一个包下 , 想要使用对方的成员需要导包
特殊包 : java . lang -> 使用 lang 包下的类不需要导包 -> String
友情提示 : 在学四种权限修饰符之前 , 尽量让两个类在同一个包下
b . 创建对象 : 想要使用哪个类中的成员 , new 哪个类的对象
类名 对象名 = new 类名 () -> 比如 : Person person = new Person ()
c . 调用成员 ( 成员变量 , 成员方法 ) -> 想要使用哪个类中的成员 , 就用哪个类的对象去点哪个成员
对象名 . 成员变量名 =
对象名 . 方法名 () -> 调用的是无参无返回值方法
对象名 . 方法名 ( 实参 ) -> 调用的是有参无返回值方法
数据类型 变量名 = 对象名 . 方法名 () -> 调用的是无参有返回值方法
数据类型 变量名 = 对象名 . 方法名 ( 实参 ) -> 调用的是有参有返回值方法
方法:
拥有功能性代码的代码块
将不同的功能放在不同的方法中 , 给每个方法取个名字 , 直接调用方法名 , 对应的方法就执行起来了 , 好维护
通用定义格式 :
修饰符 返回值类型 方法名 ( 参数 ){
方法体
return 结果
}
4. 通过通用格式 , 分成四种方法来学习 :
a . 无参无返回值方法
b . 有参无返回值方法
c . 无参有返回值方法

d.有参有返回值方法

形式参数和实际参数区别
1. 形式参数 ( 形参 ): 在定义方法的时候形式上定义的参数 , 此参数还没有值
2. 实际参数 ( 实参 ): 在调用方法的时候给形参赋予的具体的值
 
可变参数(不定参数)
Java 把可变参数当做数组处理
可变参数必须位于最后一项 。当可变参数个数多余一个时,必将有一个不是最后一项, 所以只支持
有一个可变参数 。因为参数个数不定,所以当其后边还有相同类型参数时, java 无法区分传入的参数属
于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项
可变参数用 ... 代替标识, ... 位于变量类型和变量名之间,前后有无空格都可以
用可变参数的方法时, 编译器为该可变参数隐含创建一个数组 ,在方法体中以数组的形式访问可变
参数。​​​​​​​
// 定义一个方法,计算之和。计算的数据不限制个数,参数为不定参
public static int cal ( int ... nums ){
int result = 0 ;
// 循环数组
for ( int num : nums ){
result += num ;
}
return result ;
}
}
方法注意事项
1. 方法不调用不执行
2. 方法的执行顺序只和调用顺序有关
3. 方法之间不能互相嵌套
4. void 不能和 [ return 结果 ] 共存 , 但是 void 能和 [ return ] 共存
a . void : 代表没有返回值
b . return 结果 : 就代表有返回值了
先将结果返回 , 然后结束方法
c . return : 仅仅代表结束方法 , 不代表有返回值
5. 一个方法中不能连续写多个 return ( 也就是说一个方法不能都多个返回值 )
6. 调用方法的时候要看看下面有没有这个方法 , 没有的方法直接调用会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值