首页 > 编程语言 >三 Java方法

三 Java方法

时间:2022-09-24 16:13:04浏览次数:33  
标签:Java int System println 方法 public out

Java方法

什么是方法

Java方法是语句的集合,它们在一起执行一个功能。

  • 方法是解决一类问题的步骤的有序组合。
  • 方法包含于类或对象中。
  • 方法在程序中被创建,在其他地方被引用。

设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。
方法的命名规则:首字母小写和驼峰原则: run(), runRun()

public class Dome1 {
    //main方法
    public static void main(String[] args){
       int sum = add(1,2) ;
        System.out.println(sum);
        
        print();
    }
    //加法
    public static  int add(int a,int b){
        return a+b;
    }
    
    public static void print() {
        for (int i = 1; i <= 5; i++) {
            for (int j = 5 - i; j >= 0; j--) {
                System.out.print(" ");
            }
            for (int w = 1; w <= 2 * i - 1; w++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

方法的定义和调用

Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:
方法包含一个方法头和一个方法体。

下面是一个方法的所有部分:

  • 修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

  • 返回值类型∶方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void。

  • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。

  • 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。

    ​ 形式参数:在方法被调用时用于接收外界输入的数据。

    ​ 实参:调用方法时实际传给方法的数据。

  • 方法体:方法体包含具体的语句,定义该方法的功能。

修饰符  返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    reyurn 返回值;    
}


public static int max(int a,int b){
        int i;
        if(a > b){
            i = a;
        }else{
            i = b;
        }
        return i;
    }

方法调用

调用方法:对象名.方法名(实参列表)

Java支持两种调用方法的方式,根据方法是否返回值来选择。

当方法返回一个值的时候,方法调用通常被当做一个值。例如:

int larger = max(30,40);
如果方法返回值是void,方法调用一定是一条语句。

System.out.println( "Hello,tiangong!" );

方法重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。

  • 方法的重载的规则:
  • 方法名称必须相同。
  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
  • 方法的返回类型可以相同也可以不相同。
  • 仅仅返回类型不同不足以成为方法的重载。

实现理论:
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。

public static int max(int num1,int num2){}
public static double max(double num1,double num2){} 
public static int max(int num1,int num2,int num3){}

//错误举例
int max(int num1,int num2){}//
int max(int num2,int num1){}//

命令行传参

(作为拓展)

有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。

public class CommandLine{
    public static void main(String args[]){
        //这种main写法也对,另一种也对
        for(int i = 0;i<arg.length;i++){
            System.out.println("args[" + i + "]:" + args[i]);
        }
    }
}

我不会这个,之前跳课了。

可变参数

  • JDK1.5开始,Java支持传递同类型的可变参数给一个方法。
  • 在方法声明中,在指定参数类型后加一个省略号(…)。
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
public class Dome2 {
    public static void main(String[] args){
        Dome2 dome2 = new Dome2();
        dome2.test(1,2,3,4);
    }

    public void test(int...  i){
        System.out.println(i[0]);
        System.out.println(i[1]);
        System.out.println(i[2]);
        System.out.println(i[3]);
    }

}

public class Dome2 {
    public static void main(String[] args) {
        //调用可变参数的方法
        Dome2 demo2 = new Dome2();
        demo2.printMax(1.0,2.0,3.0,4.0);
        demo2.printMax(new double[]{1.0,2.0,3.0});
        demo2.printMax();
    }
    public void printMax(double... numbers){
        if(numbers.length==0){
            System.out.println("no argument");//没有参数
            return;
        }
        double result = numbers[0];
        //顺序比较,取最大值
        for (int i = 0; i < numbers.length; i++) {
            if(numbers[i]>result)
                result = numbers[i];
        }
        System.out.println("the max value is "+result);

    }

递归

  • A方法调用B方法,我们很容易理解!

  • 递归就是:A方法调用A方法!就是自己调用自己

  • 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。

  • 递归结构包括两个部分:

    ​ 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
    ​ 递归体:什么时候需要调用自身方法。

public class Dome3 {
    public static void main(String[] args) {
        int f = factorial(5);
        System.out.println(f);

    }

    //阶乘(使用了递归的方法)
    public static int factorial(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
}

边界条件:打倒边界,停止

前阶段:返回阶段 n*(n-1)

//我做的两个数的计算器
 public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a,b;
System.out.println("请输入要运算的前一个数");
a = scan.nextInt();
System.out.println("请输入要运算的后一个数");
b = scan.nextInt();
System.out.println("请输入要运算的方法 + ,-,*,/");
String c;
c = scan.next();
switch (c){
     case "+":
          System.out.println(add(a,b));
          break;
     case "-":
          System.out.println(reduce(a,b));
          break;
     case "*":
          System.out.println(multiply(a,b));
          break;
     case "/":
          System.out.println(divide(a,b));
          break;
     default:
          System.out.println("输入不合法");
        }
    }

public static int add(int a,int b){
      return a+b;
    }
public static int reduce(int a,int b){
      return a-b;
    }
public static int  multiply(int a,int b){
      return a*b;
    }
public static double divide(double a,double b){
      return a/b;
    }

标签:Java,int,System,println,方法,public,out
From: https://www.cnblogs.com/tiangong/p/16725813.html

相关文章

  • Java基础 (1)
    IJ的使用快捷键:ctrl+d复制当前行到下一行psvmpublicstaticvoidmain(String[]args){}soutSystem.out.println();Java基础1.注释注释包括单行注释,......
  • java static
    1.static关键字的目的:   主要用于内存管理2.static关键字的范围:     1)使用范围:javastatic关键字可以用在变量、方法、代码块和嵌套类伤。   2)作......
  • JavaScript 的闭包(closure)
    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/对于闭包的理解,其实可以归纳为,在创建函数时,同时创建了一个集......
  • Java 静态字段和静态方法
    在一个class中定义的字段,我们称之为实例字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。还有一种字段,是用static修饰的字段,称为静态字段:stati......
  • Java 包(package) (不重要)
    为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。包的作用1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。2、如同文件夹一样,包也......
  • Java源码解析库对比:javaparser、qdox、spoon
    Qdox:paul-hammant/qdoxJavaParser:javaparser/javaparserSPOON:INRIA/spoonQdoxJavaParserSPOONGitHub社区1.3kUsers8Contributors328stars⭐45forks3.3......
  • 方法
    方法何为方法Java方法是语句的集合,它们用于一起执行一个功能(1)、方法是解决一类问题的步骤的有序组合(2)、方法包含于类和对象中(3)、方法在程序中被创建,在其他地方被......
  • java第一课
    重新开始学习javajava编程的基本格式publicclassMain{  publicstaticvoidmain(String[]args){    /**    *@Description:Helloworld ......
  • Java基础(标识符,数据类型,数据转换,变量)
    注释Java中的注释有3种:单行注释 //多行注释/**/文档注释/***/注释不会被执行,是给我们写代码的人看的书写注释是一个非常好的习惯标识符Java所有的组成部......
  • 模板方法模式总结
    模板方法模式近期在探究Android源码时,发现Android里面用到了大量的钩子方法,下意识反应这是一种设计模式的应用——模板方法,于是重新翻阅了刘伟老师的《Java设计模式》......