第14、15课Java数组与方法零基础编程实战课堂笔记
来源:互联网 发布:xp专业版激活软件 编辑:程序博客网 时间:2024/04/30 04:04
概要:
数组零基础实战
方法零基础实战
一. Java中一维数组
1. 数组:是一组相关数据的集合,数组中的数据类型一定是完全相同;
2. 数组的三种类型:一维数组,二维数组,多维数组;
3. 要使用数组,首先要声明数组,然后要分配具体的内存给数组;
代码实现:
int scores[] = null; //声明scores为整型数组scores = new int[10]; //为整型数据分配空间,其元素个数是for(int x = 10;x < 10;x++){//打印出数组中每一个元素的值 System.out.println(scores[x]);}
打印结果如下:
0
0
0
0
0
0
0
0
0
0
- 在内存的栈保存数据的名字,而在内存的堆中则保存数组的具体内容,数组的名字具体指向数组的内容,从而可以通过数组的名字加上数组内容索引的方式来访问数组中具体的内容; 在栈中保存的永远是数组的名称,必须通过new关键字在堆中为当前的数组开辟堆内存空间并赋(初始)值,此时栈中的数组的名称会指向堆中分配的数组空间的首地址;
- 数组中有一些类同类型的元素,每个元素的访问可以通过数组的名称加上元素的索引位置来共同完成,数组的索引位置是从0开始的。例如访问数组中的第三个元素scores[2];
- 数组长度的访问是通过数组的length方法,例如scores.length
- int [] scores = {1,2,3,4,5};//使用静态初始化声明数组
二: java中的二维数组
1. 二维数组相当于一个表格,数组中的每一个元素又是一个数组。
int scores[][]; scores = new int[5][2]; for(int i = 0;i < scores.length;i++){ for(int j = 0; j < scores[i].length; j++){ System.out.println(scores[i][j] + "\t"); } System.out.println(); }
输出结果如下: 0 0 0 0 0 0 0 0 0 02. 使用静态初始化的方式实例化二维数组可以让元素类型为数组的具体的每一个元素的内容的长度不同。
int scores[][] = {{10,2},{31,1,4,56,3},{2,321}}; for(int i = 0;i < scores.length;i++){ for(int j = 0; j < scores[i].length; j++){ System.out.print(scores[i][j] + "\t"); } System.out.println(); }
输出结果如下:10 2 31 1 4 56 3 2 321
三: java中的多维数组
int scores[][][] = {{{10,2}},{{31,1,4}},{{2,321}}}; for(int i = 0;i < scores.length;i++){ for(int j = 0; j < scores[i].length; j++){ for(int k = 0; k < scores[i][j].length; k++){System.out.print("scores["+ i + "][" + j + "][" + k + "] = " + scores[i][j][k] + "\t"); } } System.out.println(); }
输出结果如下:
scores[0][0][0] = 10 scores[0][0][1] = 2
scores[1][0][0] = 31 scores[1][0][1] = 1 scores[1][0][2] = 4
scores[2][0][0] = 2 scores[2][0][1] = 321
四:关于数组的范围
数组索引的范围是从0 ~数组的长度-1,在访问数组的时候必须在访问内,否则的话会出现如下错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at com.dt.java.ArrayOps.arrayMoreAdvanced(ArrayOps.java:19) at com.dt.java.ArrayOps.main(ArrayOps.java:8)
补充说明:其实excel就是一个二维数组的实现!
五, java中方法的定义和使用
1. 方法代表一段可以复用代码集合,接受输入参数,通过代码的计算,返回执行结果;
public static int sum(int x, int y){ int result = x + y; return result; }
输出结果如下: x + y = 8
- 方法的重载:函数名称相同,但传递的函数的参数类型或者参数个数不同。
public static int sum(int x, int y){ int result = x + y; return result; } public static int sum(int x, int y,int z){ int result = x + y + z; return result; }
输出结果如下:
x + y + z = 18
- 方法重载只考虑在函数名称相同的情况下不同的输入参数类型和参数的个数不考虑函数返回值的类型(也就是如果函数名称及其参数类型和个数完全相同的话,则不能算作方法重载)例如下面就是错误的方法重载的方式:
int result = x + y; return (float)result; } public static int sum(int x, int y){ int result = x + y; return result; }
- 可以使用“return”关键字来返回方法中执行的结果内容;
- 方法的递归调用,即方法自己调用自己!
public static int sum(int number){ if(number == 1){ return 1; }else{ return number + sum(number -1); } }
- 可变参数:方法接受个数不固定的参数,即按照需要传递参数个数:
public static void sum(int... args){ for(int x = 0; x < args.length; x++){ System.out.println(args[x] + "\t"); } }
补充:可以使用JDK1.5推出foreach增强循环语法来更加方便的访问数组的内容。
public static void sum(int... args){ for(int arg : args){ System.out.println(args[arg] + "\t"); } }
六: 把数组作为方法的参数传递给方法进行处理:
int[] scores = {89,97,100,88,85}; sort(scores); for(int score : scores){ System.out.println(score + "\t"); } } private static void sort(int[] scores) { for(int i = 0; i < scores.length; i++){ for(int j = 0; j < scores.length; j++){ if(scores[i] < scores[j]){ int x = scores[i]; scores[i] = scores[j]; scores[j] = x; } } } }
此时传递给方法的只是数组的引用,在方法内部改变数组引用所指向的具体的数组的内容实际上就改变了数组本身。
课程笔记来源:
0 0
- 第14、15课Java数组与方法零基础编程实战课堂笔记
- 第16、17课Java零基础面向对象编程实战课堂笔记
- JAVA零基础学习第一天笔记
- java零基础入门笔记第三天
- 第5课:零基础实战Scala函数式编程及Spark源码解析
- 第7课:零基础实战Scala面向对象编程及Spark源码解析
- 零基础学习JAVA.第三天:Java编程基础
- Java基础学习第五天——方法与数组
- [课堂笔记]三.Java数组
- java基础课堂笔记1
- Java 数组、方法、基础笔记
- 课堂笔记: C++ 数组(基础内容)
- java零基础第一天
- 网易云课堂-零基础学Java test2-1
- 课堂笔记学习java(初级)第三节课
- 堆与栈的解析-以数组为例,解析数组在内存中的分布(JAVA基础-课堂笔记)
- 课堂笔记——数组与指针
- java并发编程实战学习笔记之对象的组合与基础构建模块
- 屏幕适配
- springboot配置文件加载不到的问题
- 数学之路(机器学习实践指南)-文本挖掘与NLP(6)
- 享元模式
- jQuery表单选择器
- 第14、15课Java数组与方法零基础编程实战课堂笔记
- MAC 上找不到.bash_profile该怎么办?
- 备忘录模式
- 2.4日,学习汇总
- web 关于http://localhost无法访问的可能原因
- 2016蓝桥杯假期任务之《未名湖边的烦恼》
- Linux安装软件包
- ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
- centos上nginx安装