Java方法
Posted ice-point
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java方法相关的知识,希望对你有一定的参考价值。
Java方法式语句的集合,就是一段用来完成特定功能的代码片段,类似于其它语言的函数,Java是值传递类型。
设计原则:方法的本意是功能块,就是实现某个功能的语句块的集合。设计方法的时候,最好保持方法的原子性:就是一个方法只完成一个功能,这样有利于后期扩展。
格式:
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){
Java语句;… … …
}
代码讲解:
public class Demo01 {
/**main方法:程序的入口*/
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
//调用求和的方法:将num1与num2的值传给add方法中的n1与n2
// 求完和后将结果返回,用sum接收结果
int sum = add(num1, num2);
System.out.println("sum = " + sum);//输出:sum = 30
//调用打印的方法:该方法没有返回值
print();
}
/** 求和的方法 */
public static int add(int n1, int n2) {
int sum = n1 + n2;
return sum;//使用return返回计算的结果
}
/** 打印的方法 */
public static void print() {
System.out.println("方法的学习....");
}
}
方法的重载
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
方法重载的规则:
-
方法名必须相同;
-
参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等);
-
方法的返回类型可以相同也可以不相同;
-
仅仅返回类型不同不构成方法重载
代码详解:
public class 方法重载demo {
public static void main(String[] args) {
System.out.println(add(3,5));
System.out.println(add(3,5,10));
System.out.println(add(3.0,5));
System.out.println(add(3,5.0));
}
/** 求和的方法 */
public static int add(int n1,int n2){
int sum =n1+n2;
return sum;
}
// 方法名相同,参数个数不同,构成重载
public static int add(int n1, int n2, int n3) {
int sum = n1 + n2 + n3;
return sum;
}
// 方法名相同,参数类型不同,构成重载
public static double add(double n1, int n2) {
double sum = n1 + n2;
return sum;
}
// 方法名相同,参数顺序不同,构成重载
public static double add(int n1, double n2) {
double sum = n1 + n2;
return sum;
}
// //编译错误:只有返回值不同,不构成方法的重载
// public static double add(int n1, int n2) {
// double sum = n1 + n2;
// return sum;
// }
// //编译错误:只有参数名称不同,不构成方法的重载
// public static int add(int n2, int n1) {
// double sum = n1 + n2;
// return sum;
// }
}
命令行传参
在运行程序时候想把数据传递到程序中时,可以靠传递命令行参数给main()方法。
代码:
public class CommandLine {
public static void main(String[] args) {
for (int i =0;i<args.length;i++){
System.out.println("args["+i+"]"+args[i]);
}
}
}
使用cmd命令行运行
方法中的可变参数
Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号。
注意:一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,如何普通参数必须在它之前声明。
举例代码:
public class 可变参数 {
public static void main(String[] args) {
printMax(34,33,45,65,99,10,2);//可以传递参数
printMax(new int[]{1,4,5,6,9});//也可以传递数组
}
//定义一个可变参数方法
public static void printMax(int...num){
if (num.length ==0){
System.out.println("没有输入数字");
return;
}
int result = num[0];
for (int i= 1;i<num.length;i++){
if (num[i]>result){
result=num[i];
}
}
System.out.println("最大值为"+result);
}
}
递归
递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。
递归结构包括两个部分:
-
递归头。如果没有头,将陷入死循环,也就是递归的结束条件。
-
递归体。调用自身方法。
递归的缺陷:
- 递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。在要求高性能的情况下尽量避免使用递归,递归调用既花时间又耗内存。
简单的递归代码:
public class 递归 {
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n){
if (n==1){
return 1;
}else{
return (n*f(n-1));
}
}
}
以上是关于Java方法的主要内容,如果未能解决你的问题,请参考以下文章
java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段