Java方法
2021/6/27 20:24:20
本文主要是介绍Java方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、方法
1.什么是方法
System.out.println()
System是系统类,out是标准输出对象,println()是一个方法
这句话是调用系统类System中的标准输出对象out中的方法printlin()
- 方法是解决一类问题的步骤的有序组合。
- 方法包含于类或者对象中。
- 方法在程序中被创建,在其他地方被引用。
2.方法的优点
-
使程序变得简短和清晰。
-
有利于维护程序。
-
提高程序的开发效率。
-
提高了代码的重要性。
二、方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值;
}
- 修饰符:是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型。
- 返回值类型:方法返回值的数据类型,有的方法执行操作后没有返回值,用void关键字。
- 方法名:该方法的名称。
- 参数:包含参数类型和参数名字,参数是可选的,方法可以不包含任何参数,调用改方法时,传递值给该参数。
- 形式参数:在方法被调用时用于接收外界输入的数据。
- 实际参数:调用方法时实际传给方法的数据。
- 方法体:方法中的执行语句,定义该方法的功能。
三、方法的调用
-
当方法返回一个值的时候,方法调用通常被当作一个值。例如:
int max = max(5,10)
-
当方法返回值是void,方法调用的一定是一条语句。例如:
System.out.println("Hello,World!")
-
Java中只有值传递。
public static void main(String[] args) { int max = max(50, 20); System.out.println(max); //调用max方法,输出大的值。返回值。 } //比大小 max方法 public static int max(int num1,int num2){ int result = 0; if (num1==num2){ System.out.println("num1==num2"); return 0;//终止方法 } if (num1>num2){ result = num1; }else { result = num2; } return result; }
四、方法的重载
方法重载:一个类中可以有俩个方法具有相同的名字,但是这俩个方法有不同的参数列表,即参数个数不同,或者参数个数相同,但所对应的参数类型不同。
public static int add(int a,int b){ int sum = 0; sum = a + b; return sum; } //方法重载,方法名字必须相同,参数类型或参数个数或者参数排列顺序不同。 public static int add(int a,int b,int c){ int sum = 0; sum = a + b; return sum; }
五、命令行传参(了解)
有时候希望在运行一个程序时在传递给塔信息,这要靠传递命令行参数给main()函数实现。
错误:找不到或无法找到加载主类。
解决方法:在项目输出的项目目录下执行java命令,写完整路径即可。
六、可变参数
在方法声明中,在指定参数类型后加一个省略号(…)实现可变参数的声明。可变参数在一个方法中只能有一个,而且必须是该方法的最后一个参数。
//double... numbers 可变参数 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); }
七、递归
递归:A方法调用A方法,即自己调用自己,设计递归算法时,要明白什么时候自己不调用自己,否则就是一个死循环。递归包括俩个部分:
- 递归头:什么时候不调用自身,没有递归头就会陷入死循环。
- 递归体:什么时候自己调用自己。
public static void main(String[] args) { Demo07 demo07 = new Demo07(); System.out.println(demo07.f(3)); System.out.println(f(2)); } //阶乘 3! 3*2*1 public static int f(int a){ if (a == 1){ return 1; }else{ return a*f(a -1); } } //边界条件:阶乘,乘到最后一个数,即1的时候,返回1,程序执行到底。 //递归前进段:当前的参数不等于1的时候,继续调用自身。 //递归返回段:从最大数开始乘,比如5的阶乘,就是5*(5-1),即n*(n-1).
递归和迭代的区别:
递归易于理解,容易编程,采取栈机制,对于嵌套层数深(深度大)的一些算法,就会占用大量的内存空间,时间开销也会增加,空间上内存会崩溃。
迭代不容易理解,编写复杂问题时困难,效率高,运行时间因循环次增加而增加,没有额外开销,空间上也没什么增加。
八、小练习
package com.feng.method; import java.util.Scanner; //简易加减乘除计算器 public class JiSuanQi { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double a = 0; double b = 0; String fh = "0"; if (scanner.hasNextDouble()){ a = scanner.nextDouble(); fh = scanner.next(); b = scanner.nextDouble(); } switch (fh) { case "+": System.out.println(a+"+"+b+"="+(a+b)); break; case "-": System.out.println(a+"-"+b+"="+(a-b)); break; case "*": System.out.println(a+"*"+b+"="+(a*b)); break; case "/": System.out.println(a+"/"+b+"="+(a/b)); break; default: System.out.println("请输如正确内容"); } scanner.close(); } }
这篇关于Java方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门