首页 > 编程语言 >Java8/18

Java8/18

时间:2022-09-18 19:33:52浏览次数:78  
标签:int 18 System public 参数 max 方法 Java8

Java方法

1.方法概念

eg:System.out.println();----System是一个系统类,out是System类的一个输出对象,println()就是一个方法

  1. 什么是方法:Java方法是语句的集合,他们在一起执行一个功能
    • 方法是解决一类问题的步骤的有序组合
    • 方法包含于类或对象中
    • 方法在程序中被创建,在其他地方被调用
  2. 设计方法的原则:方法的本意是功能块就是实现某个功能的语句块的集合。我们设计的方法的时候要保持方法的原子性(就是一个方法只完成一个功能,这样有利于后期扩展)
  3. 方法的命名规则:首字母大写,多字母驼峰原则。

2.方法的定义及调用

  1. Java的方法类似于C的函数,是一段用来完成特定功能的代码片段。

  2. 方法的定义:

    • 修饰符 返回值类型 方法名(参数类型 参数名){

      ​ 方法体;

      }

    • 修饰符:可选多个,用来定义该方法的访问类型

    • 返回值类型:不是void类型时,方法体中要有return语句(返回一个值和结束方法)

    • 方法名:注意命名规则

    • 参数类型:可以有参也可以无参

    • 方法体:功能的具体语句

  3. 方法调用:

    • 调用方法:对象名.方法名(实参列表)
    • java有两种调用方法的方式,根据方法是否有返回值来选择:
      • 当有返回值时:int larger=max(3,4);
      • 当没有返回值时,方法调用是一条语句:System.out.println();
  4. Java只有值传递(没有引用传递)

3.方法重载

  1. 方法重载的概念:重载就是在一个类中,有相同的函数名称,但形参不同

  2. 方法重载的规则:

    • 方法名称必须相同。
    • 参数列表必须不同(参数类型,参数个数,参数顺序)
    • 方法返回值类型不做规定
  3. 实现原理:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败则编译器报错

  4. 实例代码:

    • package com.bbh.method;
      
      public class Demo01 {
      //方法重载
      public static void main(String[] args) {
          int max=max(3,4,3);
          int max2=max(3,6);//即使两个方法名字相同,但根据实参,编译器可以自动选择对应的方法
          System.out.println(max);
          System.out.println(max2);
      }
      
          public static int max(int a,int b) {
              int max=0;
              if (a > b) {
                  max=a;
              } else if (a < b) {
                  max=b;
              } else {
                  System.out.println("a=b");
              }
              return max;
          }
          //方法重载,参数个数不同
          public static int max(int a,int b,int c) {
              int max=0;
              if (a > b&&a>c) {
                  max=a;
              } else if (b>a&&b>c) {
                  max=b;
              } else if (c>a&&c>b) {
                  max=c;
              } else {
                  System.out.println("a=b=c");
              }
              return max;
          }
      }
      

4.命令行传参

  1. 有时候你希望运行一个程序时再传递给它信息,这需要靠命令行 参数给 main()方法实现。

5.可变参数(本质是数组)

  1. 从JDK1.5开始,Java支持给一个方法传递同类型的可变参数

  2. 在方法声明中,在指定参数类型后加一个省略号(...)

  3. 一个方法中只能指定一个可变参数,并且必须是最后一个参数。

  4. 实例代码:

    • public static void main(String[] args) {
          //调用可变参数的方法
          printMax(1,2,3,4,5,6);//形式1
          printMax(new double[]{20,23.5,23.4});//形式2,实参是一个数组,因为可变参数的实质就是数组
      
      }
      public static void printMax(double ...number){//可变参数number
          if (number.length==0){
              System.out.println("没有数字");
          }
          //排序最大值
          double max=number[0];
          for (int i = 1; i <number.length ; i++) {
              if (number[i]>max){
                  max=number[i];
              }
          }
          System.out.println(max);
      }
      

6.递归

  1. 递归:方法自己调用自己

  2. 利用递归可以使用简单程序解决复杂问题(将复杂的计算过程给计算机处理)

  3. 递归结构包括两部分:

    • 递归体:调用自身方法的部分
    • 递归出口:什么时候不调用自身时,及递归趋向结束的条件
  4. 例如:求阶乘:1!=1,2!=1*2

    代码:

    public class Demo03 {
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            System.out.println("你想要求几的阶乘呢?");
            int n=scanner.nextInt();
            System.out.println(+n+"的阶乘是:"+f(n));//调用f方法
    
        }
        //求阶乘的方法f
        public static int f(int n){
            if(n==1){//递归出口
                return 1;
            }else {//递归体
                return n*f(n-1);
            }
        }
    }
    

7.作业

  1. 计算机代码:

    package com.bbh.method;
    
    import java.util.Scanner;
    
    /**
     * 计算机
     */
    public class Demo04 {
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            for (int i = 0; i <10 ; i++) {
                System.out.println("请输入第一个算数:");
                double x=scanner.nextDouble();
                System.out.println("请输入运算符:");
                char op=scanner.next().charAt(0);
                System.out.println("请输入第二个算数:");
                double y=scanner.nextDouble();
                System.out.println(operate(x,op,y));
            }
    
        }
        public static double operate(double x,char op,double y){
            double result=0;
            switch (op){
                case '+': result=x+y;break;
                case '-': result=x-y;break;
                case '*': result=x*y;break;
                case '/': result=x/y;break;
                default:
                    System.out.println("输入内容有误");
            }
            return result;
        }
    }
    

标签:int,18,System,public,参数,max,方法,Java8
From: https://www.cnblogs.com/tuming/p/16705540.html

相关文章

  • 2022/9/18——zTao.力扣杂记
    剪枝与回溯对于需要求出各种满足题目要求的组合类型的题目。往往需要用到剪枝策略。例如LeetCode44求组和总数、22括号生成、473火柴拼正方形、77组合、216组合总和3、13......
  • PL20-Music-20220918
    TeacherMeghanS.RoleAStudentEistertRoleBTEACHER'SCOMMENTSeistert,thankyouforcomingtothelessonon‘’Music’’​.Youdidwellandworked......
  • 20201318李兴昕第十章学习笔记
    第十章:sh编程知识点归纳总结:本章讨论了sh编程,阐释了sh脚本和不同版本的sh。比较了sh脚本与C程序,并指出了解释语言和编译语言的区别;说明了如何编写sh脚本,包括sh变量,sh语句......
  • leetcode 6184. 统计共同度过的日子数
    leetcode6184.统计共同度过的日子数题目描述Alice和Bob计划分别去罗马开会。给你四个字符串arriveAlice,leaveAlice,arriveBob和leaveBob。Alice会在日期arr......
  • JAVA8 - 流
    packagecom.day01;importorg.junit.Test;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;importjava.util.stream.Stream;/***......
  • 【java8新特性】01:函数式编程及Lambda入门
    我们首先需要先了解什么是函数式编程、函数式编程是一种结构化编程范式、类似于数学函数、它关注的重点在于数据操作、或者说它所提倡的思想是做什么,而不是如何去做。自J......
  • 总结一周(2022.9.18)
    1.使用Springsecurity的时候,会默认跳到Springsecurity的界面,并且通过账户名为user,自动生成的密码来进行登录 2.在Springboot进行测试运行的时候为什么SYSUserMapper为......
  • ZLMediaKit + wvp-GB28181-pro windows部署
    1.在powershell中#国内用户推荐从同步镜像网站gitee下载gitclone--depth1https://gitee.com/xia-chu/ZLMediaKitcdZLMediaKit#千万不要忘记执行这句命令git......
  • CF1718D 题解
    设\(k\)为\(a\)中的空位数量。首先咱们转化这个“相似”的条件,发现它其实是说,笛卡尔树的结构相同。那么我们把p建笛卡尔树然后把a的数往上填。如果此时有上面小于下......
  • [Typescript] 18. Medium - Deep Readonly
    Implementageneric DeepReadonly<T> whichmakeeveryparameterofanobject-anditssub-objectsrecursively-readonly.Youcanassumethatweareonlydea......