JavaSE基础

多听一遍不如多练一遍,多练一遍不如总结一遍,希望各位在学习的过程中,要多听,多写,多练,每天将自己所学汇总一遍,查缺补漏,成就更好的自己

一.函数

1.1概述

  • 函数又叫方法,是完成指定功能的一个代码块,可以通过函数的名字重复使用

1 .2 构成

public static 返回值类型 函数名(形参列表){  //方法的声明//方法的实现方法体
}
  • public static

  • Java关键字表示访问范围和存储位置

  • 返回值类型

  • 方法运行结束时候得到的数据的类型

  • 函数名

  • 函数的名字,需要是一个合法的标识符

  • 形参列表

  • 形参就是声明了各种变量。没有赋值,用户调用函数时候传入真正的数据【实参】

  • 方法体

  • 这个函数要实现的具体功能

1 .3 调用

  • 在main方法中通过函数名进行调用

package com.javastudy.dayo6;public class ClassTest01 {public static void main(String[] args) {// TODO Auto-generated method stubprintfo(); //调用下面的方法 pringfo()}public static void printfo() {System.out.println("                    #        ┏┓   ┏┓+ +\r\n" + "                   #   ┏┛┻━━━┛┻┓ + +\r\n" + "                 #   ┃       ┃  \r\n" + "                 #   ┃   ━   ┃ ++ + + +\r\n" + "                 #   ████━████ ┃+\r\n" + "                   #   ┃       ┃ +\r\n" + "                    #   ┃   ┻   ┃\r\n" + "                   #   ┃       ┃ + +\r\n" + "                 #   ┗━┓   ┏━┛\r\n" + "                   #     ┃   ┃           \r\n" + "                  #     ┃   ┃ + + + +\r\n" + "                 #     ┃   ┃    Codes are far away from bugs with the animal protecting   \r\n" + "                   #     ┃   ┃ +     神兽保佑,代码无bug  \r\n" + "                    #     ┃   ┃\r\n" + "                 #     ┃   ┃  +         \r\n" + "                    #     ┃    ┗━━━┓ + +\r\n" + "                  #     ┃        ┣┓\r\n" + "                   #     ┃        ┏┛\r\n" + "                   #     ┗┓┓┏━┳┓┏┛ + + + +\r\n" + "                 #      ┃┫┫ ┃┫┫\r\n" + "                  #      ┗┻┛ ┗┻┛+ + + +\"");System.out.println("wode airen ");}}

二.函数的参数

2.1 概述

  • 参与函数运行的数据称为参数

  • 参数有两种分别是:

  • 形式参数(形参)

  • 实际参数(实参)

2.2形参

  • 方法声明部分小括号中定义的变量(可以不赋值,只定义)

  • 告诉方法调用者,这个方法运行起来需要哪些类型和数量的数据

private  static String isTriangle(double x1,double y1,double z1) {//这里的三个double 对应 三角形的三条边,他们就叫做形参// TODO Auto-generated method stubif((x+y>z) && (x+z>y) && (y+z>x)) {System.out.println("成立三角形");}else {System.out.println("不能成立三角形");}}

2.3实参

  • 函数运行时候实际使用的数据,这个数据是用户调用函数时候放入括号中的

  • 相当于给形参完成赋值操作

  • 实参的数量、类型、顺序必须和声明的形参保持一致

public static void main(String[] args) {   Scanner sc = new Scanner(System.in);System.out.println("判断是否能构成三角形");System.out.println("请输入三角形的三条边");double x = sc.nextInt();//x边double y = sc.nextInt();//y边double z = sc.nextInt();//z边isTriangle(x,y,z);//这里输入的double x,y,z对应的函数里面的x1,y1,z1,并赋予他们实际运行中的值
}

2.4练习

  • 编写方法,传入三角形三条边长,输出能否构成三角形

  • 编写方法,传入一个起始年份和一个结束年份,输出这个区间的闰年

  • 编写方法,传入身高和体重,输出BMI是否正常

public static void main(String[] args) {Scanner sc = new Scanner(System.in);// TODO Auto-generated method stubprintTWGX();System.out.println();System.out.println("判断是否能构成三角形");System.out.println("请输入三角形的三条边");double x = sc.nextInt();//x边double y = sc.nextInt();//y边double z = sc.nextInt();//z边isTriangle(x,y,z);System.out.println();System.out.println("判断闰年");
//      System.out.println("请输入起始年份和末尾年份");isYear(1000, 1030);System.out.println();System.out.println();System.out.println("判断BMI是否正常");
//      System.out.println("请输入你的身高(m)体重(kg)");healthBMI(1.75,82);System.out.println();}private static void printTWGX() {// TODO Auto-generated method stubSystem.out.println("豫章故郡,洪都新府。星分翼轸,地接衡庐");System.out.println("襟三江而带五湖,控蛮荆而引瓯越");}/*** * @param x 边长* @param y 边长* @param z 边长*/private  static void isTriangle(double x1,double y1,double z1) {// TODO Auto-generated method stubif((x1+y1>z1) && (x1+z1>y1) && (y1+z1>x1)) {System.out.println("成立三角形");}else {System.out.println("不能成立三角形");}}/*** * @param x 起始年份* @param y 末尾年份*/private static void isYear(int x ,int y ) {// TODO Auto-generated method stubfor(   ; x <= y ; x++) {if(x % 4 == 0 && x % 100 !=0 || x % 400 == 0) {System.out.print(x+"是闰年"+" "); }else{System.out.print("不是闰年");}} }/*** * @param high    身高* @param weight体重*/private static void healthBMI(double high, double weight) {// TODO Auto-generated method stubdouble BMI = weight/(high * high);if(BMI >= 18.5 && BMI <= 22.9) {System.out.println("正常");}else {System.out.println("不正常");}}

三.返回值和返回值的类型

3.1 概述

  • 有些函数运行之后会产生一个结果,如果需要保留使用,我们就需要用返回值来保存

  • 查询得到的名字、年龄、信息

  • 计算得到的周长、面积、位置

  • ... ...

3.2 返回值

  • 方法运行结束时候得到的数据

3.3 返回值类型

  • 方法运行结束时候得到的数据的类型

3.4 练习

  public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);//调用扫描器//传入三角形的三条边,返回周长double x,y,z;//输入三条边的值、System.out.println("请输入三条边的值");x = sc.nextDouble();y = sc.nextDouble();z = sc.nextDouble();//调用方法计算周长System.out.println(triangleS(x,y,z));//传入一个年份,判断是不是闰年\System.out.println("请输入一个年份");int year =sc.nextInt();//调用方法判断是不是闰年System.out.println(isyear(year));//传入身高和体重,返回BMI//传入身高(M)System.out.println("请输入你的身高(M)");double high = sc.nextDouble();//传入体重(KG)System.out.println("请输入你的体重(KG)");double weight = sc.nextDouble();System.out.println(yourBMI(high,weight));//传入两个数字,返回较大的那个System.out.println("请输入要比较的两个数");int a = sc.nextInt();int b = sc.nextInt();//调用方法进行比较System.out.println(compare(a,b));//传入两个数字,返回平均值System.out.println("请输入要求平均数的两个数");int c = sc.nextInt();int d = sc.nextInt();//调用方法进行求平均数System.out.println(average(c,d));//根据关键字查询并返回结果System.out.println("请输入关键字");int str = sc.nextInt();System.out.println(check(str));}private static double triangleS(double x,double y,double z) {// TODO Auto-generated method stubif((x+y>z) && (x+z>y) && (y+z>x)) {//先判断是否能构成三角形double C = x+y+z;return C;//返回周长}else {return -1; //不能构成三角形}}private static String isyear(int years) {// TODO Auto-generated method stubif(years % 400 == 0|| years % 4 == 0 && years % 100 != 0) {//判断是不是闰年return "是闰年";}else {return "不是闰年";}}private static double yourBMI(double h , double w) {// TODO Auto-generated method stubdouble BMI = w/(h*h);//计算你的BMIreturn BMI;}private static int compare(int a1,int b1) {// TODO Auto-generated method stubreturn (a1>b1)?a1:b1; //返回较大者}private static double average(int c1,int d1) {// TODO Auto-generated method stubreturn (c1+d1)/2;  //求平均值}private static String check(int key) {// TODO Auto-generated method stubString goods;switch (key) {case 1:goods = "物品1";break;case 2:goods = "物品2";break;default:goods = "NULL";break;}return goods;   }

3.5 注意事项

分支语句中的return

  • 在分支语句中必须保证能返回数据

  • 每一个分支中可能都是需要return的

方法中能否存在多个return?

  • 但是最多执行一个return

  • 执行return相当于方法结束了,后面的代码无法继续执行

  • return后面不能再书写代码

四. return 关键字

4.1概述

  • 函数的结束方法

  • 函数结束时可以返回数据

4.2.案例

//void 函数没有返回值,也可以用return结束,但return后面不跟返回值
//函数的结束方法private static void show() {//循环,找到6后停止for (int i = 0; i < 10; i++) {System.out.println(i);if (i == 6) {// break;   // 终止循环return;  // 结束show方法,方法中这一行之后的代码不再执行}//函数结束时返回数据
private static double average(int c1,int d1) {// TODO Auto-generated method stubreturn (c1+d1)/2;  //求平均值  }

五.函数(方法)分类

5.1 根据返回值类型和参数列表分类

  • 无参数无返回值

  • 无参数有返回值

  • 有参数无返回值

  • 有参数有返回值

5.2 无参数无返回值

  • 内容固定不变,不需要运算、查询等操作,没有返回值

    /***    无参数无返回值*/private static void notice() {System.out.println("红灯停,绿灯行。");}

5.3 无参数有返回值

  • 固定条件查询、计算

  • 无差别查询

    /***    无参数有返回值*        询所有信息* @return*/private static String searchALl() {return "all information";}

5.4 有参数无返回值

  • 增删改有可能是没有返回值,有时候提示即可

   /***    有参数无返回值* @param songName*/private static void playMusic(String songName) {System.out.println("马上播放:" + songName);}

5.5 有参数有返回值【重点】

  • 使用最多,符合大部分情况

  /***    传入2个数字,返回这些数字的平均值* @param c1* @param d1* @return*/private static double average(int c1,int d1) {// TODO Auto-generated method stubreturn (c1+d1)/2;  //求平均值  }

Day07补充

六.多级调用

6.1 概述

  • 方法不能嵌套

  • 方法中不能书写其他的方法

  • 方法中可以调用其他方法

A方法中调用B方法
B方法中调用C方法
C方法中调用D方法
... ...

6.2 方法多级调用案例

package com.javastudy07;public class ClassTest01 {public static void main(String[] args) {System.out.println("main方法开始...");show01();System.out.println("main方法结束...");}public static void show01() {System.out.println("\tshow01方法开始...");show02();System.out.println("\tshow01方法结束...");}public static void show02() {System.out.println("\t\tshow02方法开始...");show03();System.out.println("\t\tshow02方法结束...");}public static void show03() {System.out.println("\t\t\tshow03方法开始...");System.out.println("\t\t\t\tHelloWorld");System.out.println("\t\t\tshow03方法结束...");}
}

6.3 递归

  • 在方法中调用本方法称为方法递归

  • 递归是由风险的

  • 如果没有在合适的时候结束调用,可能造成无穷递归

  • 最终造成栈内存溢出错误

  • 递归需要再合适的时候结束调用,来解决具有某些规律的问题

6.4递归练习

package com.javastudy07;public class ClassTest02 {public static void main(String[] args) {/***    计算5!*    5! = 5*4*3*2*1*       = 5 * 4!*       = 5 * 4 * 3!*       = 5 * 4 * 3 * 2!*       = 5 * 4 * 3 * 2 * 1!*       = 5 * 4 * 3 * 2 * 1*/int result = mul(5);System.out.println(result);/**    斐波拉契数列*     1    1    2    3    5    8    13    21    34    55...*     第一个、第二个    1*         f(1)=1、f(2)=1*     后面    前面两个相加*         f(3)=f(1) + f(2)*         f(4)=f(2) + f(3)*         f(5)=f(4) + f(3)*         ... ...*/for (int i = 1; i <= 10; i++) {System.out.println(fib(i));}/***     mul(5)*     5 * mul(4)*     5 * 4 * mul(3)*     5 * 4 * 3 * mul(2)*     5 * 4 * 3 * 2 * mul(1)* @param n* @return*/public static int mul(int n) {if (n == 1) {return 1;}return n * mul(n-1);}/***    斐波拉契数列中的第N个数字* @param n* @return*/public static int fib(int n) {if (n==1 || n==2) {return 1;}return fib(n-1)+fib(n-2);}}

今日习题

package com.javastudy.dayo6;import java.util.Scanner;public class HomeWork {public static void main(String arg[]) {/** 1、编写方法,计算m只鸡和n只兔子腿的数量并返回2、编写方法,在方法中输出NN【参数指定】乘法表3、编写方法,输出2~~某个数N之内的素数*/Scanner sc =new Scanner(System.in);//1System.out.println("请输入鸡的数量和兔子的数量");int h = sc.nextInt();int r = sc.nextInt();System.out.println("总共有"+feet(h,r)+"条腿");//2System.out.println("请输入行和列的值");int row = sc.nextInt();int col = sc.nextInt();NNmult(row,col);System.out.println();//3System.out.println("请输入你选择的数字");int prime = sc.nextInt();System.out.println(isPrimeNum(prime));}private static int feet(int hen ,int rabbit) {// TODO Auto-generated method stubint sum;sum= hen*2 + rabbit*4;return sum;
}private static void NNmult(int x, int y) {// TODO Auto-generated method stubfor(int i = 1; i <= x ; i++) { // 行System.out.println();for(int j = 1 ; j <= y ; j++){System.out.print(j+"*"+i+"="+i*j+"  ");//列}}
}private static String isPrimeNum(int p) {// TODO Auto-generated method stubboolean is = true;for(int i = 2 ; i < p ;i++) {if(p % i == 0) {is = false; break;}if(is) {return "是素数";}}return "不是素数";
}
}

Java学习Day06——函数,参数,返回值,分类,多级调用相关推荐

  1. Python深度学习实战:声呐返回值分类

    Python深度学习实战:声呐返回值分类 声呐物体分类数据 简单的神经网络 预处理数据以增加性能 调整模型的拓扑和神经元 缩小网络 扩大网络 总结 本章我们使用Keras开发一个二分类网络.本章包括: ...

  2. java中main()函数的返回值是什么_Java中main()函数的返回值类型是什么

    Java中main()函数的返回值类型是什么 答:void 在单纯形表的终表中,若非基变量的检验数有0,那么最优解 答:无穷多 中国大学MOOC: 不属于现代区位理论的是( ) 答:中心地理论 不属于 ...

  3. java 函数参数 返回值_java中如何用函数返回值作为post提交的参数?

    1.我想实现的功能是在java程序中导入HttpURLConnection类,然后将函数的值作为post方法要提交的参数,最后显示在显示台上. 2.要用到的函数是自己写的可以显示实时计算机cpu.内存 ...

  4. shell函数参数,返回值

    函数参数 在Shell中,调用函数时可以向其传递参数.在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数- 带参数的函数示例: #!/bin/bashfunW ...

  5. day03 文件操作 函数 参数 返回值 作用域和名称空间 global和nonlocal

    一.文件 (一)文件操作 open(文件, mode="", encoding="utf-8") 文件读取: r(read) 1. readline() 读取一 ...

  6. java函数void返回值是,Java中main()函数的返回值是什么( )。A、StringB、intC、c......

    下面的哪个是Java的关键字()A.stringB.abstractC.NULLD.Boolean Javaapplication中的主类需包含main方法,以下哪项是main方法的正确形参?A.St ...

  7. python 函数递归一次增加一次变量_python基础之函数、返回值,局部变量、全局变量,递归(继续补充不定长参数)...

    1.python中函数定义:函数是逻辑结构化和过程化的一种编程方法.(完成某一种特定的功能) def test02(): #"" msg = 'hello WuDaLang' re ...

  8. 学习大数据的第13天——Java面向对象(接口、分析参数返回值的类型不同时如何解决、包以及访问权限修饰符(public、protected、默认、private))

    学习大数据的第13天--Java面向对象(接口.分析参数返回值的类型不同时如何解决.包以及访问权限修饰符(public.protected.默认.private)) 接口 接口的基本定义: 1.1.语 ...

  9. 函数的返回值可以不用赋值_C语言学习|函数的应用《一》

    C语言为程序的结构提供了函数和模块 一.函数的定义与使用 <编程之道>中写道:"一个程序应该是灵活自由的.它的子过程就像串在一根线子上的珍珠."子过程在C语言中被称为& ...

最新文章

  1. BAT可真拿抖音一点儿办法也没有
  2. flask 继承模版的基本使用1
  3. 恩墨学院丨OBCP墨天轮精品课正式上线啦~
  4. autowired注入jar中的依赖_springboot项目中调用jar包中的类时报错 — 没有注入类
  5. linux 扫描开放的端口命令,在Linux系统中检查(扫描)开放端口的方法
  6. Common lisp之加载方式(一)
  7. 数据结构: 树 (查找树)
  8. 企业网站电子邮件营销的优势与转化率分析
  9. MongoDB 表设计
  10. opencv 双目标定操作完整版
  11. 单片机测量脉宽c语言程序,利用51系列单片机定时器功能实现测量脉冲宽度
  12. 谷歌Chrome 操作系统基于浏览器的OS
  13. 难受难受,真它吗的难受... ...
  14. com.sun.mail.smtp.protected void rcptTo() 方法
  15. 《深入理解计算机系统》课本第七章自学笔记——20135203齐岳
  16. 一位独角兽CTO的2022年度书单
  17. 使用pytorch获取bert词向量
  18. 程序员的工资高,到底程序员的工资有多高?那些你不了解的程序员
  19. pcb入门之原理图生成PCB
  20. 透视学现象如何产生?

热门文章

  1. 【Minecraft】【ModPC】【我的世界】 我的世界电脑版如何进入网络游戏?
  2. UNIQLO销售数据分析python实战
  3. 【STM32教程】学习STM32必须要知道的知识点-什么是ARM
  4. 程序、窗口、截屏快捷键
  5. 如何在android手机项目中加入广告
  6. Parameter - Out Of Values报错解决方法
  7. SOME,ANY,All,EXISTS,IN
  8. 科创板第一批IPO企业受理名单公布
  9. 素描小子跑酷html5游戏在线玩,推荐14款强大的HTML5素描及绘图工具
  10. BlueStacks