具体返回值类型的方法&&数组

    科技2025-10-03  10

    1. 具有返回值类型的方法的使用!

    定义有具体返回值类型的方法的定义的注意事项: 1)方法和方法平级关系,不能嵌套使用! 特殊:方法递归(IO流后面讲):方法调用方法本身的一种现象! 2)定义方法注意两个明确 明确返回值类型 明确参数类型以及参数个数 3)定义方法的时候: 参数类型必须携带的! public static int add(x,y){} 错误的: 因为Java是一种强类型语言:语法非常严谨的,以及格式是有要求的! 4)定义方法的时候,()后面不要出现; (目前来说没意义的方法!) 5)调用方法的时候,实际参数不需要携带数据类型 class Demo{ public static void main(String[] args){ //定义两个变量 //实际参数 int x = 10 ; int y = 20 ; //调用方法的时候,实际参数不需要携带数据类型 //int result = add(int x,int y) ;//错误写法 int result = add(x,y) ; System.out.println("两个数据之和是:"+result); } //定义两个数据求和的功能:默认int类型 public static int add(int x,int y){//形参需要携带数据类型 return x + y ; } }

    2.没有具体返回值类型的方法定义以及调用

    方法定义: public static 返回值类型 方法名(形式参数列表(包含数据类型+变量名)...){ 要么 return 结果; 要么没有具体结果; } Java的语法: 方法本身的定义:需要返回值类型,但是如果需求本身就没有具体返回结果,如何定义方法呢? 语法要求:如果没有具体返回值结果,使用void 来代替 返回值类型(位置) 注意:Java中不存在void类型(替代词) 没有具体返回值类型的方法的定义格式: public static void 方法名(形式参数类型1 变量名1,形式参数类型2 变量名2...){ 直接输出语句或者其他业务操作; } 没有具体返回值类型的方法调用 单独调用 赋值调用 输出调用 class Demo{ public static void main(String[] args){//固定格式 //打印4行5列的* for(int x = 0 ; x < 4 ; x ++){//行数 for(int y = 0 ; y < 5 ; y ++){//列数 System.out.print("*") ; } System.out.println() ; } System.out.println("---------------------") ; //赋值调用 //void result = printStar(5,6) ;非法的表达式开始 //System.out.println(printStar(5,6)) ; //单独调用 printStar(5,6) ; System.out.println("---------------------") ; printStar(9,9) ; } /* 将上面n行n列的*形 方法改进 public static void 方法名(形式参数类型1 变量名1,形式参数类型2 变量名2...){ 直接输出语句或者其他业务操作; } 两个明确: 1)明确返回值类型: 没有具体返回值类型---使用 void代替 2)明确参数类型以及参数个数 int类型 2个 */ public static void printStar(int m,int n){//m:行数,n表示列数 for(int x = 0 ; x < m; x ++){ for(int y = 0 ; y < n ; y ++){ System.out.print("*") ; } System.out.println() ; } } }

    3.没有有返回值类型的方法的使用

    import java.util.Scanner ; class Demo{ public static void main(String[] args){ //键盘录入两个数据,求两个数据中的最大值 //创建键盘录入对象 Scanner sc = new Scanner(System.in) ; //提示并录入两个数据 System.out.println("请输入第一个数据:") ; int a = sc.nextInt(); System.out.println("请输入第二个数据:") ; int b = sc.nextInt(); //调用求两个数据最大值的方法 int max = getMax(a,b) ; //输出 System.out.println("两个数据中的最大值是:"+max) ; System.out.println("-------------------------------") ; //键盘录入两个数据,比较两个数据是否相等 //分析:结果:相等:true,不相等:false System.out.println("请输入第一个数据:") ; int firstNum = sc.nextInt(); System.out.println("请输入第二个数据:") ; int secNum = sc.nextInt(); //调用方法 boolean flag = compare(firstNum,secNum) ; System.out.println("flag:"+flag) ; } /* 键盘录入两个数据,比较两个数据是否相等 两个明确: 1)明确返回值类型:boolean类型 2)明确参数类型以及参数个数 int类型,2个参数 */ public static boolean compare(int a,int b){//形参 //简写方式 //return a==b ; //== :比较两个数据值是否相等! == return (a==b)? true: false ; } /* 定义方法: 两个明确 1)明确返回值类型: int 2)明确参数类型以及参数个数 int类型,两个参数 */ //方式1:三元运算符 public static int getMax(int a,int b){ //比较a和b的最大值 return (a > b) ? a: b ; } //方式2:if...else 语句 public static int getMax2(int a,int b){ //定义max变量 int max ; if(a> b){ max = a ; }else{ max = b ; } return max ; } }

    4.数组定义

    数组:是可以存储元素的一种容器! 前提:元素的数据类型必须一致的! 如何定义呢? 格式: 数据类型[] 数组名称 ; 数据类型 数组名称[] ; 举例: int[] arr; (习惯于第一种) 定义了一个int类型数组arr变量 int arr[] ;定义了一个int类型的arr数组 数组的初始化: 1)动态初始化:指定了数组长度,系统默认给定数组的元素值! 2)静态初始化:指定了具体的元素的内容,系统默认指定数组的长度! 动态初始化: 数据类型[] 数组名称 = new 数据类型[数组长度] ; 数据类型 数组名称[] = new 数据类型[数组长度] ; 举例: int[] arr = new int[3] ; //创建了一个数组对象,分配3个长度 int arr[] = new int[2] ;//.创建了一个数组对象,分配2个长度 数组中元素的的访问方式: 数组名称[角标]来访问 角标(下标/索引):都是从0开始记录元素的! class Demo{ public static void main(String[] args){ //测试:创建一个数组对象:默认:int类型 int[] arr = new int[3] ; System.out.println(arr) ;//[I@6d06d69c //[:一维数组 I :int类型 @:地址值标记 6d06d69c十六进制数据 System.out.println(arr[0]) ; //0 System.out.println(arr[1]) ;//0 System.out.println(arr[2]) ;//0 System.out.println("----------------------") ; //自己显示初始化 //重新赋值 arr[0] = 100 ; arr[1] = 50 ; System.out.println(arr) ; System.out.println(arr[0]) ; System.out.println(arr[1]) ; System.out.println(arr[2]) ; } }

    5.数组的静态初始化

    数组的静态初始化 :指定数组的元素内容,系统给它默认长度 格式: 标准格式: 数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3....} ; 数据类型 数组名称[] = new 数据类型[]{元素1,元素2,元素3....} ; 举例: int[] arr = new int[]{11,22,33} ; 简化格式: 数据类型[] 数组名称 ={元素1,元素2,元素3....} ; 数据类型 数组名称[] ={元素1,元素2,元素3....} ; class Demo{ public static void main(String[] args){ //创建一个数组:静态初始化 int[] arr = {11,22,33,44,55} ; System.out.println(arr) ;//地址值 System.out.println(arr[3]) ; System.out.println(arr[0]) ; } }

    6.数组中出现的异常

    异常: 后期Throwable:异常的总称 程序出问题了! 严重问题: error : 内存异常了 (通过一些第三方工具避免了!) 举例: 一些软件通过一些特殊的操作:造成软件崩溃了! 异常: Exception: 能够通过本身代码来解决问题 编译时期异常:只要不是运行时期的异常都属于编译时期(不解决,编译通过不了) RuntimeExcetion:运行时期异常 在执行过程中,由于代码结构不严谨,导致的问题! 第一个异常:数组角标越界! java.lang.ArrayIndexOutOfBoundsException: 出现的原因:访问不存在的角标!就出异常了 解决方案:改动角标值即可! 第二个异常:空指针异常: java.lang.NullPointerException: 出现的原因: 某个对象都为null,还需要使用对象访问内容或者调用其他功能! 解决方案: 只需要对某个对象做一个非空判断!(逻辑判断) class ArrayDemo5{ public static void main(String[] args){ //创建一个数组,静态初始化 int[] arr = {1,2,3} ; System.out.println(arr) ; System.out.println(arr[0]) ; System.out.println(arr[1]) ; System.out.println(arr[2]) ; //System.out.println(arr[3]) ;//3:访问不存在的角标!就出异常了 System.out.println("------------------") ; //给arr重新赋值 arr = null ; //System.out.println(arr[0]) ;java.lang.NullPointerException //逻辑判断 if(arr!=null){ System.out.println(arr[0]) ; }else{ System.out.println("数组对象为null了...") ; } } }

    7.数组的遍历

    class Demo{ public static void main(String[] args){ //有一个数组:静态初始化 int[] arr = {11,22,33,44,55} ; //数组的最大索引(角标)值 = 数组长度-1 //原始的做法: 通过数组名称[角标]来访问元素 System.out.println(arr[0]) ; System.out.println(arr[1]) ; System.out.println(arr[2]) ; System.out.println(arr[3]) ; System.out.println(arr[4]) ; System.out.println("------------------------------") ; printArray(arr) ; } public static void printArray(int[] arr){ //输出:左中括号"{" System.out.print("{") ; //遍历数组 for(int x = 0 ; x < arr.length ; x ++){//x是索引(角标) //11 22 33 44 55 //判断当前x是否取到最大索引值! arr.length-1 if(x == arr.length -1){ //取到最大索引值,输出每一个元素以及+"}" System.out.println(arr[x] +"}") ; }else{ //中间的元素: //输出:arr[x] +", " ,同一行上 System.out.print(arr[x] +", ") ; } } } }
    Processed: 0.009, SQL: 8