首页 > 编程语言 >java方法详解

java方法详解

时间:2024-03-22 23:33:30浏览次数:29  
标签:java int args 详解 static result println 方法 public

java方法详解

方法是语句的集合。目的是解决一类问题。

一个方法只完成一个功能,这样有利于后期的扩展。
(单一职责原理)

java都是值传递!有一个值copy的过程。


public class Demo02 {
    public static void main(String[] args) {
        int max = max(10, 20);
        System.out.println(max);
    }

    //比大小
    public static int max(int num1, int num2) {
        int result = 0;
        if (num1 == num2) {
            System.out.println("num1==num2");
            result = 0; // 终止方法
        }
        if (num1 > num2) {
            result = num1;
        } else {
            result = num2;
        }
        return result;
    }
}

要在命令行执行java命令启动class,需要进到src目录,从这个目录找到包名,才能执行起来。
否则执行不起来。

package com.mysoft.method;

public class Demo03 {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println("args["+i+"]: "+args[i]);
        }
    }
}

例如,用命令行方式执行的话,如下:

可变参数

JDK1.5开始,java支持可变参数。
在指定参数类型后面加一个省略号...
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。普通参数必须在它之前。

package com.mysoft.method;

public class Demo04 {
    public static void main(String[] args) {

        //调用可变参数的方法
        printMax(1,2,3,4,56,7,30);
        printMax(new double[]{1,2,3,10,30,20,26});
    }

    public static void printMax(double... numbers) {
        if (numbers.length == 0) {
            System.out.println("No argument passed");
            return;
        }

        double result = numbers[0];

        //排序!
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i] > result) {
                result = numbers[i];
            }
        }
        System.out.println("The max value is " + result);
    }
}

 

递归

 

package com.mysoft.method;

public class Demo06 {
    public static void main(String[] args) {
        System.out.println(f(5));
    }

    // 1! =  1
    // 2! =  2*1
    // 5! =  5*4*3*2*1

    // 2  2*f(1)
    // 3  3*f(2)
    public static int f(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * f(n - 1);
        }
    }
}


递归的数据不能太大,如果调用自身过多,很可能就堆栈溢出。
传递的数据过大的场合,就得放弃递归,得想其他办法解决。

标签:java,int,args,详解,static,result,println,方法,public
From: https://www.cnblogs.com/langQ/p/18089880

相关文章

  • Java-Java基础学习(5)-注解和反射以及类的加载过程分析
    4.1注解的理解Annotation是从JDK5.0开始引入的新技术Annotation的作用不是程序本身,可以对程序作出解释(这点和注释comment没什么区别);可以被其他程序(比如:编译器等)读取;Annotation的格式注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(v......
  • java基础50道面试题
    java基础50道面试题一、java基础1.equals与==区别在Java中,"=="是一个比较操作符,用于比较两个变量的值是否相等。而"equals()"是Object类中定义的方法,用于比较两个对象是否相等。具体区别如下:1."=="用于比较基本数据类型和引用类型变量的地址值是否相等。对于基本数据类型,比......
  • if、switch语句构成的选择结构详解
    前言:C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语言是能够实现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合,下文将讲述C语言中选择结构相关语句语法。一、if语句if语句分为单if语句、if......
  • Java笔记
    Java背景1.官网oraclejava文档https://docs.oracle.com/en/java/index.htmloraclejdk下载https://www.oracle.com/java/technologies/downloads/openjdkhttps://openjdk.org/2.java和JVMjava是基于类的、纯粹的面向对象编程语言java是解释执行类的语言WOR......
  • Java-day01
    类型隐式转换byte、short、char类型数据在运算时(+、-、*、/、%...)会进行隐式转换成int。例如:bytea=3;byteb=4;bytec=a+b;错误,a+b在运算时会转换为int型,将int型赋值为byte型,大转小,需要强制转换,(byte)(a+b)shorts=1;s=s+1;错误,s+1在运算是会转换为int型,......
  • JavaWeb学习笔记——第一天
    Web开发什么是WebWeb:全球广域网,也称为万维网(wwwWorldWideWeb),能够通过浏览器访问的网站。Web网站的工作流程用户通过浏览器访问Web网站服务端的程序分为三部分:运行前端程序的前端服务器、运行Java后端程序的后端服务器和数据库服务器。用户通过浏览器对网站发起请求后,......
  • Java中的synchronized关键字是如何工作的?
    在Java中,synchronized关键字是一种内置的同步机制,用于控制多个线程对共享资源的访问,以防止出现数据不一致和竞态条件。当一个线程进入一个synchronized块或方法时,它需要获取一个锁(也称为监视器锁或互斥锁),如果锁已经被其他线程持有,则该线程将被阻塞,直到锁被释放。以下是sync......
  • 函数的详解
    目录1.函数的概念2.库函数2.1库函数的概念2.2 标准库和头文件2.3库函数的使用方法2.4 头文件包含2.5 库函数文档的一般格式3.自定义函数3.1函数的与法形式3.2函数举例4.实参和形参4.1实参4.2形参5.return语句6.嵌套调用和链式访问6.1嵌套调用......
  • 开源计算机视觉库OpenCV详解
    OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉和机器学习软件库。OpenCV最初由Intel开发,后来支持由WillowGarage和Itseez(被Intel收购)进行的维护和更新。这个库旨在为实时的计算机视觉应用提供一个高效的、易于使用的环境,并且是用C++编写的,尽管它提供了......
  • .lastUpdated:The POM for mysql:mysql-connector-java:jar:8.1.0 is missing, no depe
    描述:在IDEA中,出现该类报错,查看本地仓库中项目对应的jar包存在,却无法获取时,可能是文件中生成.lastUpdated文件或有remote.repositories文件导致的。.lastUpdated:在更新maven项目的时候,每一个jar包路径下的_remote.repositories文件都会同setting.xml中设置的仓库地址id......