今日学习内容罗列:
一、二维数组
1、二维数组的概念:
二维数组的元素就是一个一维数组,以及一维数组对应的长度
2、定义格式:
1)动态初始化
格式1:
数据类型[][] 数组名称 = new 数据类型[m][n] ; (推荐第一种)
数据类型 数组名称[][] = new 数据类型[m][n] ;
举例:
int[][] arr = new int[3][2] ;
解释:
等号左边:
int:表示一个int类型
[][]:表示定义二维数组
arr :数组名称
等号右边:
new :在堆内存中创建对象
int :创建int类型数组
[3] :表示当前二维数组中有3个一维数组
[2] :这三个一维数组中每一个都有2个元素
格式2:
数据类型[][] 数组名称 =new 数据类型[m][] ;
举例:
int[][] arr = new int[3][] ;
当前二维数组中有m个一维数组,但是没有给定每一个一维数组的长度,长度可以动态给定!
2)静态初始化
基本格式:
数据类型[][] 数组名称 = new 数据类型[][]{{元素1,元素2..},{元素1,元素2...},{元素1,元素2...}...} ;
简写格式
数据类型[][] 数组名称 = {{元素1,元素2..},{元素1,元素2...},{元素1,元素2...}...} ;
举例: int[][] arr = {{1,2,3},{4,5,6},{7,8,9}} ;
二、面向对象
1、类和事物的关系::
学生事物 (概括)
有哪些属性: 姓名,年龄,身高,性别,学号...
有哪些行为: 学习...,打游戏....
学习编程语言,是为了描述现实世界的事物,
学习的Java语言,是一种面向对象语言, Java中最基本 单元----->类
需要使用编程语言描述当前事物
简言之,类和事物可以对应起来!
2、面向对象的定义:
一句话:万物皆对象
其特点是:
1)更符合生活中的思想行为习惯
2)让复杂的事情简单化
3)让我们从执行者变成指挥者
其特征是:
封装 继承 多态
三、tips
2.数组中两个常见的异常:
1)异常:(架构体系:了解)
Throwable 类 :
error: 严重错误,无法直接解决 (内存溢出),可以通过第三方的技术避免!
Exception:表示程序异常了
RuntimeException:运行时期异常
不是RunTimeException异常,编译时期异常
2)两种异常:
a、ArrayIndexOutOfBoundsException:数组角标越界异常 (运行时期异常)
出现这个异常的原因:访问了数组中的不存在的角标
b、NullPointerException:也属于运行时期异常
出现异常的原因:对象都不存在了或者为null,还有通过对象访问数组中的元素值,肯定出现问题
如何解决: 针对当前对象进行非空判断
2.形式参数问题:
方法的形式参数如果是一个基本数据类型,形式参数的改变对实际参数没有影响!
方法的形式参数如果是引用数据类型,形式参数的改变会直接影响实际参数!
举例:
基本数据类型:
class ArgsDemo{
public static void main(String[] args){
int a = 2 ;
int b = 3 ;
System.out.println("调用方法前a的值是:"+a+",b的值是:"+b) ;
change(a,b) ;
System.out.println("调用方法后前a的值是:"+a+",b的值是:"+b) ;
}
public static void change(int a,int b){
a = b ;
b = a+ b;
}
}
运行后,结果是:
调用方法前a的值是:2,b的值是:3
调用方法后a的值是:2,b的值是:3
引用数据类型:
class ArgsDemo{
public static void main(String[] args){
int[] arr = {1,2,3,4,5} ;
System.out.println("调用方法前的值是:"+arr[1]);
change(arr) ;
System.out.println("调用方法后的值是:"+arr[1]) ;
}
public static void change(int[] arr){
for(int x = 0 ; x < arr.length ; x ++){
if(arr[x]%2 ==0 ){
arr[x]*=2 ;
}
}
}
}
运行后,结果是:
调用方法前的值是:2
调用方法后的值是:4
来源:CSDN
作者:loving-stranger
链接:https://blog.csdn.net/weixin_46084871/article/details/103809386