您的位置:首页 > 其它

数组 二维数组 遍历 异常

2020-01-15 11:40 232 查看

创建对象的原则: 先父类后子类
加载内容原则: 先静态后成员
this:当前new的对象
运行: 找new的对象
方法:多态情况 调用重写方法
属性:就近原则

new 的步骤:

  • 开辟空间 初始成员变量并赋默认值
  • 为成员变量赋值(int a=5)
  • 调用构造器为为对象初始化信息

值传递:基本数据类型是值传递
引用数据类型:地址值的传递

测试面向对象的使用:

  • 多态使用成员变量,编译运行看父类
  • 多态使用成员方法,调用子类重写的方法,子类没有找父类
  • 多态不能使用子类新增方法,如果想要调用,需要通过向下转型,变成子类引用指向子类对象,可以向下调用

数组

数组 [ ] : 相同数据类型的数据的有序集合
变量: 存储单个数据
数组: 存储多个数据

数组的特点:

  1. 数组是一个引用数据类型 , 类和接口也是
  2. 数组长度一旦确定不可改变
  3. 相同数据类型的数据
  4. 有序(索引|下标)

声明:
数据类型 [ ] 数组名; 优先使用
或 数据类型 数组名[ ] ;

数据类型 : 数组中所有数据的数据类型,数据类型可以为基本或者引用数据类型

动态初始化: 创建数组对象,后续赋值
数据类型 [ ] 数组名 = new 数据类型[长度];

静态初始化: 创建数组对象的同时并赋值
数据类型 [ ] 数组名 = new 数据类型 [ ]{数据1,数据2,数据3…};

索引|下标: 从0开始,每次+1

操作数组中的数据 : 数组名[下标]

属性: 数组名.length 获取数组中数据的个数

数组中最后一个数据的下标 : 数组名[数组名.length-1]

数组中的数据不赋值存在默认值, 整数0 小数0.0 char’ ’ boolean false 引用数据类型 null

数组的遍历方式 : for 和 for …each

例如:

int []arr3={5,6,7,2};
for(int i=0;i<arr3.length;i++){//arr3.length 数组的长度,不用-1,所以是<
System.out.println(arr3[i]);
}

或者是:

int []arr3={5,6,7,2};
for(int i:arr3){//增强for
System.out.println(i);
}

二维数组

数组中的每一个数据还是一个数组

创建
声明 :
数据类型 [ ][ ] 数组名 ;优先使用
或者:数据类型 数组名 [][]; 数据类型[] 数组名 [];

动态初始化:
数据类型[ ][ ] 数组名 = new 数据类型[一维的长度][二维的长度]; 二维的小数组长度已经固定

数据类型[ ][ ] 数组名 = new 数据类型[一维的长度][ ];
数组名[0] = new int [二维的长度] ----意思是第0位的一维数组,定义它的长度

静态初始化: 创建的同时赋值
数据类型[][] 数组名 = new 数据类型[][]{{1,2,3},{4,5},{6}};
也可以写成 : 数据类型[][] 数组名 = {{1,2,3},{4,5},{6}};

二维数组的遍历:

int[][]arr=new int[2][2];
arr[0][0]=1;
arr[0][1]=5;
arr[1][0]=8;
arr[1][1]=7;
for(int[] in:arr){
for(int i:in){
System.out.println(i);
}
}

数组打印 : Arrays.toString(arr)
数组升序排序 : Arrays.sort(arr) ;
查找数组索引具体位置:Arrays.binarySearch(arr2, 9) 注意:需要先升序排序
数组的拷贝:Arrays.copyOf(arr2, 13)
数组的指定范围复制到一个新数组:Arrays.copyOfRange(arr2, 2,4))

public static void main(String[] args) {
String[] arr={"c","ab","a","bc"};
System.out.println(arr.length);
System.out.println(arr);
//把数组中的内容以字符串的形式返回  Arrays.toString
System.out.println(Arrays.toString(arr));

//sort 默认升序排序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));

//binarySearch()二分查找法  存在数据返回索引,不存在返回-(插入点)-1
int[] arr2={3,6,1,2,7,5};
System.out.println(Arrays.toString(arr2));
//先升序排序
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
System.out.println(Arrays.binarySearch(arr2, 9));;

//数组的拷贝
//tatic int[] copyOf(int[] original, int newLength)
System.out.println(Arrays.toString(Arrays.copyOf(arr2, 13)));;

//static int[] copyOfRange(int[] original, int from, int to)
//将指定数组的指定范围复制到一个新数组。   结束素银不包含
System.out.println(Arrays.toString(Arrays.copyOfRange(arr2, 2,4)));;

}

异常

异常的分类:
Error:错误,一般不需要程序员管理,一般为虚拟机生成并脱出的,程序员无权管理
Exception:异常

RuntimeEception:运行时异常 : 运行期间才会发现的异常; 一般通过增强程序的健壮性处理 if语句

CheckedException检查时|编译时异常 :编译期会发生的异常,只能通过异常处理方式来解决,如果不解决程序无法运行

异常处理:
如果出现异常,肯定会影响代码的执行,编译时异常,无序无法运行,运行时异常程序无法继续向下执行
抛出异常:throws 把问题抛出到上一层,使用的人(方法)来解决
异常捕获:try…catch

*  	try{
*  		有可能会出现异常的代码;
*  	}catch(FileNotFoundException e){ //局部变量的声明,赋值的内容是这个类型的异常对象  是try中可能出现的异常对象
*  		如果出现异常,执行的代码;
*  	}catch(FileNotFoundException e){ //局部变量的声明,赋值的内容是这个类型的异常对象  是try中可能出现的异常对象
*  		如果出现异常,执行的代码;
*  	}catch(Exception e){ //局部变量的声明,赋值的内容是这个类型的异常对象  是try中可能出现的异常对象
*  		如果出现异常,执行的代码;
*  	}
*  	...
*  	finally{
*  		无论是否try出现了异常,都会执行的代码
*  	}
*
*  	一个try后可以添加多个catch,至少一个catch
*  	如果try出现了异常,try中下面的代码都不执行了,只能去找对应的catch
*  	finally可以添加,可以不添加
*  	catch捕获的异常较小,定义在上面,catch捕获的异常类型范围大,定义在下面
*  	如果出现异常,肯定会影响代码的执行,编译时异常,无序无法运行,运行时异常程序无法继续向下执行
*  	无论是编译时异常还是运行时期异常,异常的两种处理方式都可以进行处理

实例:

public static void main(String[] args) {
String s=null;
if(s!=null){
System.out.println(s.length());
}else{
System.out.println("字符串为null");
}

//System.out.println(4/0);

try {
System.out.println("try开始啦!!!");
test();
System.out.println(4/2);
System.out.println("try结束了!!!");
} catch (FileNotFoundException e) {
//e.printStackTrace();
System.out.println("出现文件为寻找到异常啦");
} catch(Exception e){
System.out.println("异常出现");
e.printStackTrace();
} finally{
System.out.println("最后的最后我们都要离开...");
}
System.out.println("main结束");
}

public static void test() throws FileNotFoundException,ArithmeticException{
//编译时异常
InputStream is=new FileInputStream("D:/test.txt");
}
  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
Heiko_O 发布了25 篇原创文章 · 获赞 25 · 访问量 275 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐