
JavaSE06笔记
发布日期:2021-05-18 05:20:08
浏览次数:25
分类:精选文章
本文共 2048 字,大约阅读时间需要 6 分钟。
技术笔记:Java数组与面向对象知识点总结
1. 数组元素的赋值
目标:定一个int型一维数组,包含10个元素,赋一些随机整数,并求最大值、最小值、总和和平均数。
方法:
- 使用循环赋值,确保每个元素都是两位数。可以使用
Math.random() * 90 + 10
生成数。 - 计算总和、最大值和最小值时,逐个遍历数组。
- 计算平均值时,将总和除以数组长度。
示例代码:
int[] arr = new int[10];for (int i = 0; i < arr.length; i++) { arr[i] = (int) (Math.random() * 90) + 10;}int sum = 0;int max = Integer.MIN_VALUE;int min = Integer.MAX_VALUE;for (int num : arr) { sum += num; if (num > max) { max = num; } if (num < min) { min = num; }}double average = (double) sum / arr.length;
2. 数组操作
复制:用循环逐个复制数组元素。
反转:使用交换法或索引计算法。
线性查找:逐个比较元素,直到找到目标值。
二分查找:前提是数组已排序。计算中间位置,根据比较结果调整查找范围。
示例代码:
// 数组反转int[] array1 = {2, 3, 5, 7, 11};int[] array2 = new int[5];for (int i = 0; i < 5; i++) { array2[i] = array1[i];}// 反转方式一for (int i = 0; i < array1.length / 2; i++) { int temp = array1[i]; array1[i] = array1[array1.length - 1 - i]; array1[array1.length - 1 - i] = temp;}// 二分查找Arrays.binarySearch(arr, target);
3. 数组排序
常见算法:冒泡排序、快速排序、插入排序、归并排序等。冒泡排序简单,但时间复杂度较高。
实现快速排序:通过划分、合并和递归的方式实现。
4. 工具类 Arrays
常用方法:
equals
比较数组内容是否相同。sort
对数组进行排序。binarySearch
提供二分查找支持。
示例代码:
import java.util.Arrays;int[] arr = {34, 76, -8, 0, 56, -45, 6, 21};Arrays.sort(arr);
5. 常见异常处理
ArrayIndexOutOfBoundsException:访问越界角标时触发,需加检查。
NullPointerException:空指针调用,比如访问null对象的方法或字段。
6. 面向对象基础
面向过程 vs 面向对象:面向对象强调对象本身的行为和属性,适合描述事物的性质。
类与对象:类定义事物的属性和行为,对象是通过new
实例化的具体实体。
成员变量 vs 局部变量:
- 成员变量在类中定义,具有默认值,用于多个对象共享。
- 局部变量在方法内定义,需显式初始化,存储在栈中。
7. 类与对象创建
- 设计类:确定属性和行为,定义构造器。
- 创建对象:使用
new
关键字。 - 调用方法:通过对象引用访问属性和方法。
示例代码:
public class Phone { String name; int price; public void call() { System.out.println("手机可以拨打电话"); }}Phone iphone = new Phone();iphone.name = "苹果手机";iphone.price = 8999;System.out.println(iphone.name + ", " + iphone.price);
8. 设算练习
编写类Person,包含成员变量和方法,练习封装、继承和多态。
代码示例:
class Person { String name; int age = 1; boolean gender; public void sleep() { System.out.println("人每天应该至少保证" + 6 + "小时的睡眠"); }}Person p1 = new Person();p1.sleep();p1.eat("湖南臭豆腐");
通过以上练习,逐步掌握数组操作和面向对象概念,为后续学习打下基础。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月04日 08时06分44秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
广东外语外贸大学第三届网络安全大赛Writeup
2019-03-09
SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
2019-03-10
Thymeleaf sec:authorize 标签不生效
2019-03-11
微信JS-SDK DEMO页面和示例代码
2019-03-11
Flask--简介
2019-03-11
Frame--Api框架
2019-03-11
Boostrap技能点整理之【网格系统】
2019-03-11
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
2019-03-11
Git简单理解与使用
2019-03-11
echarts 基本图表开发小结
2019-03-11
adb通过USB或wifi连接手机
2019-03-11
JDK9-15新特性
2019-03-11
TreeSet、TreeMap
2019-03-11
JVM内存模型
2019-03-11
可变长度参数
2019-03-11
3、条件查询
2019-03-11
cordova打包apk更改图标
2019-03-11
GitHub上传时,项目在已有文档时直接push出现错误解决方案
2019-03-11
文件系统的层次结构
2019-03-11