方法
注意事项:
1.方法的声明必须在类中声明,在main主函数的外面
2.方法的调用必须再main主函数中调用。使用方法是的额名字来调用
3.方法的名字的命名和变量命名是一样的!!!
无参无返回值的方法
语法格式:
public static void 方法的名字(){
方法体;
}
相关代码
package com.qf.b_method;
public class Demo3 {
public static void main(String[] args) {
//通过方法 的名字来调用
printEat();//就会去执行printEat()后面大括号中的代码
}
//声明一个方法 打印5遍的中午吃黄焖鸡
//printEat 和main 是统一级别的!!!不能相互嵌套!!
//声明好一个方法就放在这个类中,并没有调用
//因为main主函数是程序入口,代码的执行都在main方法中
//现在printEat 写在main中了么?没有
public static void printEat () {
for (int i = 0; i < 5; i++) {
System.out.println("中午吃黄焖鸡");
}
}
}
有参无返回值的方法
语法格式:
public static void 方法的名字(数据类型 变量1,数据类型 变量2,...){
方法体;
}
相关代码
package com.qf.b_method;
public class Demo5 {
public static void main(String[] args) {
//在main主函数中调用这个方法
//声明的时候带了参数,调用的时候也得带一个参数
//main主函数中 这个34 叫实参 实际的参数
//方法的声明处 int num 叫形参 形式参数 只是一个形式而已
//将实参赋值给形参 将34 赋值 给 int num 这个变量
printNum(34);// int num = 34;
sum(3, 4);
}
/**
* 无返回值 void
* 有参 方法的后面的小括号里有数据类型和变量
* num 是一个声明的int 类型的变量而已
* 是一个int类型的参数
*/
public static void printNum (int num) {
System.out.println(num + 2);
}
//求两个数的和一个方法
public static void sum (int a, int b) {
System.out.println(a + b);
}
}
无参有返回值的方法
语法格式:
public static 数据类型 方法的名字(){
方法体;
return 返回的数据;
}
相关代码
package com.qf.b_method;
public class Demo6 {
public static void main(String[] args) {
//调用 一个有返回值的方法的时候,要用一个变量接收一下
//在main主函数中调用 giveNum的时候 会返回一个值出来
//giveNum返回的值赋值给了 i这个变量
int i = giveNum();
System.out.println(i);
}
/**
* 无参 : 方法后面的小括号里面没有东西
* 有返回值的方法: 不能使用void 关键字,使用return关键字返回值
* 没有返回值的,只是打印一下而已
* 有返回值的,在调用方法的时候,会返回出来一个值
*
* 就好比我口袋里面有一万块钱。
* 我让你看看。这个操作就是没有返回值的
* 我给你1万块钱让你话,这个叫有返回值的
*/
public static int giveNum () {
int a = 23;
//return 是返回的意思
return a;
}
}
有参有返回值的方法
语法格式:
public static 数据类型 方法的名字(数据类型 变量1,数据类型 变量2,...){
方法体;
return 返回的数据;
}
相关代码
package com.qf.b_method;
public class Demo7 {
public static void main(String[] args) {
int i = sum(10, 20, 30);
System.out.println(i);
String str1 = compareDouble(89.7, 98.3);
System.out.println(str1);
}
/**
* 有参有返回值的方法
* 有参: 方法的后面的小括号中有一个变量 暂时不用赋值
* 有返回值: 在声明方法的时候告知此时返回的值是什么数据类型的
*
*/
//让求 三个int类型数的和 的值是int类型的数据
public static int sum (int a, int b, int c) {
//This method must return a result of type int
return a + b + c;
}
//判断两个数double类型的数据谁大 谁小?这个方法咋写?
/**
* 需要参数不?需要 传两个参数 double类型的
* 返回值是啥? 能不能字符串类型的数据?
*/
public static String compareDouble (double d1, double d2) {
if (d1 > d2) {
return d1 + "大";
} else {
return d2 + "大";
}
//一个方法中能不能有两个return关键字,不可以!!!
//通过业务逻辑的判断 只能出现一个return
}
}
数组
数组在Java中的定义
变量定义:
数据类型 变量名字 = 值;
数组定义:
数据类型[] 数组名字 = 数组的值;
数组详细的语法格式:
第一种命名格式:
数据类型 [] 数组的名字= {值1,值2,值3,...};
或
数据类型 数组的名字 [] = {值1,值2,值3,...};
第二种命名方式:
数据类型 [] 数组的名字 = new 数据类型[容量];
或
数据类型 数组的名字 [] = new 数据类型[容量];
第三种命名方式【不常用】
数据类型 [] 数组的名字 = new 数据类型 [] {值1,值2,值3,...};
第二中数组命名是空的数组,其赋值方式:
package com.qf.test;
import java.util.Arrays;
public class Demo7 {
public static void main(String[] args) {
//第二种数组的声明方式
int[] arr = new int[3];//arr = {0,0,0};
//对这个空的数组进行的的赋值
arr[0] = 23;//将23d赋值给 下标为0 的arr这个数组 arr = [23, 0, 0]
//System.out.println(Arrays.toString(arr));
arr[1] = 45;
//System.out.println(Arrays.toString(arr));//arr = [23, 45, 0]
arr[2] = 678;
System.out.println(Arrays.toString(arr));//arr = [23, 45, 678]
//arr[3] = 250; 这个下标越界
//ArrayIndexOutOfBoundsException 数组下标越界
//System.out.println(Arrays.toString(arr));
System.out.println("=========");//arr = [23, 45, 678]
/**
* i=0 0<3 true arr[0] = 89 arr = [89, 45, 678] i++
* i=1 1<3 true arr[1] = 90 arr=[89, 90, 678] i++
* i=2 2<3 true arr[2]= 91 arr =[89, 90, 91] i++
* i=3 3<3 false 循环结束以后 arr =[89, 90, 91]
*/
for (int i = 0; i < 3; i++) {
arr[i] = 89 + i;
}
System.out.println(Arrays.toString(arr));//[89, 90, 91]
}
}
对数组的取值(通过下标进行取值)
package com.qf.test;
public class Demo8 {
public static void main(String[] args) {
int[] arr = {32, 45, 89, 12, 999, 5667};
//获取数组中的值
System.out.println(arr[0]);//32
System.out.println(arr[1]);//45
System.out.println(arr[2]);//89
System.out.println(arr[3]);//12
System.out.println("==============");
for (int i = 0; i < 4; i++) {
//i的循环的值 刚好作为数组的下标
System.out.println(arr[i]);
}
//数组.length 数组的长度
System.out.println(arr.length);// arr的长度 4
System.out.println("---------------");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
String[] strs = {"张三", "狗蛋", "麻子", "嘻嘻"};
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
}
}
二维数组
语法格式:
数据类型[][] 数组名字 = new 数据类型[容量][容量];
package com.qf.test;
import java.util.Arrays;
public class Demo9 {
public static void main(String[] args) {
int[][] arr = new int[2][3];
arr[0][0] = 78;
arr[0][1] = 89;
arr[0][2] = 100;
arr[1][0] = 250;
arr[1][1] = 101;
arr[1][2] = 99;
//第一个[] 是行 第二个[] s是列
//取数据 使用循环来取
for (int i = 0; i < 2; i++) {//控制行
for (int j = 0; j < 3; j++) {//控制列
System.out.println(arr[i][j]);
}
}
}
}