黑马程序员——java语法二
来源:互联网 发布:淘宝网美二玖洗衣皂 编辑:程序博客网 时间:2024/06/07 11:43
------- android培训、java培训、期待与您交流! ----------
Java语法二
函数
1. 函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法
2. 函数的格式
修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,…) {
执行语句;
return返回值;
}
a) 修饰符public static
b) 返回值类型这个特定的功能完成后,需要返回一个结果,这个地方就是返回结果的类型
c) 函数名调用时指定的名字,这个名字要符合标识符命名规则
d) 参数类型形式参数的数据类型
形式参数:表示将要接收的参数
实际参数:调用方法时传入指定的参数
e) 执行语句这个语句是由多条语句组成
f) return返回方法指定类型的一个值
3. 函数的特点
a) 函数只有被调用后,才执行
b) void 表示没有返回值,在这个函数的结尾可以不写return
jvm会自动的结尾处加上return;
4. 自定义函数
a) 要实现什么功能,返回什么样的值
b) 接收什么样的参数或者不接受参数
5. 函数的重载
a) 函数名相同,参数个数不同,参数类型顺序不同
b) 特点:与返回值类型无关,只看参数列表
c) 好处:便于阅读,优化程序设计
代码示例
class MethodTest {public static void main(String[] args) {// 调用方法getNum();// 接收参数并返回int型的方法int a = 1;int b = 2;int sum = sum(a, b);System.out.println(a + "+" + b + "=" + sum);}// 定义一个方法输出1~10public static void getNum() {for (int i = 1; i <= 10; i++) {System.out.println(i);}}// 定义一个方法得到两个数的和public static int sum(int a, int b) {return a + b;}}
数组
1. 同一种类型数据的集合,其实数组就是一个容器
2. 数组的好处
可以自动给数组中的元素从0开始编号,方便操作这些元素
3. 数组的定义的几种格式
a) int[] arr = new int[5]; //初始化数组大小
b) int[] arr; //声明数组
arr = new int[]; //创建数组对象
c) int[] arr = new int[]{1, 2, 3,4}; //指定数组的内容
d) d) int[] arr = {1, 2, 3, 4}; //直接创建数组内容
4. 当操作同一类型数量比较多的数据时
5. 数组会被创建在内存中的堆内,堆内的数据都是有初始值的,下面是每种数据类型的初始值
byte, short, int, long这些类型初始值是0
float, double初始值是0.0
char初始值是\0000 null
boolean初始值是false
引用类型初始值是null
6. 操作数组最常见的问题
a) 当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生下标越界异常ArrayIndexOutOfBoundsException
示例: int[] arr = new int[3];
System.out.println(arr[3]);
b) 当数组不在指向某个实体时,你还继续访问,就会发生空指针异常NullPointerException
示例: int[] arr = new int[3];
arr= null;
System.out.println(arr[1]);
7. 常见的数组的操作
a) 访问数组某个值可以用数组名[index]得到, index指的是数组中的下标,最小下标是0,最大是arr.length-1,得到数组长度可以用length
b) 遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
c) 获取最值
获取最大值
publicstatic int getMax(int[] arr){
intmax = arr[0];
//i从1开始,因为第一个数不用跟自己比
for(intx = 1; x < arr.length; x++) {
if(arr[x]> max) {
max= arr[x];
}
}
returnmax;
}
获取最小值
publicstatic int getMin(int[] arr) {
intmin = arr[0];
//i从1开始,因为第一个数不用跟自己比
for(intI = 1; I < arr.length; i++) {
if(arr[i]< min){
min= arr[i];
}
}
returnmin;
}
d) 排序
选择排序
原理: 如果拿0下标上的元素依次和后面的元素进行比较,
第一次内循环结束后,最小值出现在了0下标位置
public staticvoid selectSort(int[] arr){
//i<arr.length-1n个数两两比 , n-1次就能获得最值。
for(inti=0; i<arr.length-1; i++){
//0下标元素没必要和自己比,所以j从1开始。
//发现j为了不重复比较,总是要比i大1,所以j从i+1开始
for(intj=i+1; j<arr.length; j++){
if(arr[j]<arr[i]){
inttemp = arr[i];
arr[i]= arr[j];
arr[j]= temp;
}
}
}
}
冒泡排序
原理:两个相邻元素进行比较,第一次比较完以后,最大值出现在了最大下标处
publicstatic void bubbleSort(int[] arr){
//i<arr.length-1n个数两两比, n-1次就能获得最值
for(inti=0; i<arr.length-1; i++){
//为了防止下标越界, j<arr.length-1
//为了减少比较次数, j<arr.length-1-i
for(intj=0; j<arr.length-1-i; j++){
if(arr[j]>arr[j+1]){
inttemp = arr[j];
arr[j]= arr[j+1];
arr[j+1]= temp;
}
}
}
}
e) 传递参数
调用的时候, 传递是基本类型的值的时候,形参改变对实参没有任何影响
调用的时候,传递是引用类型的地址值的时候,形参改变对实参有直接影响
8. 数组的初始化过程
创建数组时在堆内存开辟一连串的空间,引用指向第一个空间,这个空间代表这个数组的下标,每个空间指向数组存储的内容,当访问数组某个位置的内容时通过指定下标得到
数组练习示例代码
冒泡排序, 二分查找
class BinarySearch {public static void main(String[] args) {// 创建一个数组int[] arr = { 1, 4, 7, 3, 9 };// 给数组排序sort(arr);// 打印数组print(arr);// 二分查找法查找3的索引int index = binary(arr, 9);System.out.println(index);}// 定义一个排序的方法public static void sort(int[] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}// 定义一个二分查找的方法public static int binary(int[] arr, int num) {// 定义数组的最小下标和, 大下标和中间的下标int min = 0;int max = arr.length - 1;int mid = (min + max) / 2;// 当最小下标小于等于最大下标是循环while (min <= max) {// 如果num比数组中间的值小, 那么将最大下标定义为mid-1if (num < arr[mid]) {max = mid - 1;}// 如果num比数组中间的值大, 那么将最大下标定义为mid+1if (num > arr[mid]) {min = mid + 1;}// 如果num与中间的值相等, 那么返回midif (num == arr[mid]) {return mid;}mid = (min + max) / 2;}// 找不到返回-1return -1;}// 定义打印数组内容的方法public static void print(int[] arr) {// 遍历数组打印每一个元素for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}}
- 黑马程序员——java语法二
- 黑马程序员——Java语法基础(二)
- 黑马程序员——Java基础---语法<二>
- 黑马程序员——Java语法基础(二)
- 黑马程序员——java基础之语法(二)
- 黑马程序员——Java基础语法二
- 黑马程序员——Java基础---基础语法(二)
- 黑马程序员——Java基础语法(二)
- 黑马程序员—java语法
- 黑马程序员 java基础语法(二)
- 黑马程序员--Java基础语法(二)
- 黑马程序员-----JAVA基础语法(二)
- 黑马程序员-----Java语法基础(二)
- 黑马程序员---Java基本语法(二)
- 【黑马程序员】JAVA基础语法二
- 黑马程序员——java语法一
- 黑马程序员——Java语法基础
- 黑马程序员——Java语法基础
- 截图功能实现(五)自绘控件实现(button combobox)
- IOS开发常用函数
- 大三时MySQL课程设计《MySQL集群的研究与实现》
- scp 出现错误ssh: connect to host 9.123.159.41 port 22:connection refused的解决办法
- 设计模式详解(总纲)
- 黑马程序员——java语法二
- csapp2e 家庭作业 3.56
- auto_ptr源码实现
- [C# 线程处理系列]专题五:线程同步
- 1.5 编写代码将字符串中的空格替换为‘%20 ’
- TQ2440裸机启动代码分析
- 第十二堂课后作业
- html中的一些操作记录
- A + B Problem + 数论