Java学习方法

Posted ying-hack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习方法相关的知识,希望对你有一定的参考价值。

方法

方法是指的是一段可以被重复利用的代码块,利用方法可以实现庞大程序的拆分,是一种代码重用的技术手段,并且更加适合于代码的维护。

方法基本定义

在程序的开发中经常碰到各种重复代码的定义,为了方便管理这些重复的代码,可以通过方法结构保存这些重复的代码,实现了重复的调用,如果要进行方法的调用则可以通过以下定义格式
public static 返回值类型 方法名称(参数类型 参数变量,参数类型 参数变量 ...){
	方法体(本方法要执行的若干操作);
	[return [返回值]]
}

  方法定义中的返回值与传递的参数类型均为Java中定义的数据类型(基本数据类型,引用数据类型),在方法中可以对返回数据的处理,如果要返回数据则可以用return来描述。return的数据类型需要与方法定义的数据类型一致。如果不返回数据则可以用void进行声明。

范例:定义一个无参数无返回值的方法

public class JavaDemo{
	public static void main(String args[]){
		printInfo();
		printInfo();
	}
	public static void printInof(){
		System.out.println("****************");
		System.out.println("* www.Java.com *");
		System.out.println("****************");
	}
}  

在这里插入图片描述
程序在主类中定义了一个printInfo的方法,此方法主要是进行内容的输出,在主方法中调用了两次。

范例:定义一个有参数有返回值的方法

public class JavaDemo{
	public static void main(String args[]){
		String result = payAndGet(20.0); //调用方法并且接受返回值;
		System.out.println(result);
		System.out.println(payAndGet(1.0)); //返回只可以直接进行输出
	}
	public static String payAndGet(double monmy){
		if(monmy >= 10.0){
			return "购买一份快餐,找零: "+(monmy - 10.0);
		}
		else{
			return "对不起,您的余额不够,请先充值,或捡漏";
		}
	}
}

在这里插入图片描述
在本程序中定义了一个方法,调用了两次方法,分别为当monmy为20时还有为1时。

范例:使用return结束方法调用

public class JavaDemo{
	public static void main(Sting args[]){
		sale(3);
		sale(-3);
	}
	/**
	*定义销售方法,可以根据金额输出销售信息
	*@param amount要销售的数量 必须是正数
	*/
	public static void sale(int amount){
		if (amount<=0) {
			return;
		}
		System.out.println("销售出" + amount + "本图书。");
	}
}

在这里插入图片描述
定义了一个方法,当传入的值小于等于0时直接返回,否则就打印出来销售书的本数。

方法重载

介绍

方法重载是方法名称进行重用的一种技术形式,最主要特点是,方法名相同但是传入的参数类型或数量不同。根据传参类型和数量执行不同的方法。

范例:定义方法重载

public class JavaDemo{
	public static void main(String args[]){
		int resultA = sum(10, 20);
		int resultB = sum(10,20,30);
		int resultC = sum(11.2,25.3);
		System.out.println("加法执行结果:"+resultA);
		System.out.println("加法执行结果:"+resultB);
		System.out.println("加法执行结果:"+resultC);
	}
	public static int sum(int x,int y){
		return x+y;
	}
	public static int sum(int x,int y,int z){
		return x + y + z;
	}
	public static int sum(double x,double y){
		return (int) (x + y);
	}
}

在这里插入图片描述
定义了三个方法,三个方法的名称相同但是参数的类型和数量不同。那么就证明sum方法被重载了。

范例:观察输出操作的重载实现

public class JavaDemo{
	public static void main(String args[]){
		System.out.println("hello");	//输出String
		System.out.println(1);			//输出int
		System.out.println(10.2);		//输出double
		System.out.println('A');		//输出char
		System.out.println(false);		//输出false
	}
}

在这里插入图片描述
很明显本程序利用System.out.println()重载的特点分别输出了各种不同的数据类型信息,可以得出明显的结论,println方法在JDK中实现了重载。

方法递归调用

介绍

递归调用是一种特殊的调用形式,指的是自己调用自己的形式。

递归调用的条件:

  • 递归调用必须有结束条件
  • 每次调用的时候需要根据需求改变传递的参数内容

范例:实现1~100数字的累加

public class JavaDemo{
	public static void main(String args[]){
		System.out.println(sum(100));
	}
	public static int sum(int num){
		if (num==1)
			return num;
		else
			return num + sum(num - 1);
	}
}

在这里插入图片描述
本程序使用递归的方式对数字进行累加,当参数为1时直接返回一个数字1。分析如下:
第一次执行sum():return 100 + sum(99)
第二次执行sum():return 99 + sum(98)
···
第99次执行sum():return 2 + sum(1)
第100次执行sum():return 1
最终执行 100 + 99 + 98 + ··· + 2 + 1;

范例:计算 1! + 2! + ··· + 90!

public class JavaDemo{
	public static void main(String args[]){
		System.out.println(sum(90));
	}
	public static double sum(int num){
		if(num == 1)
			return 1;
		else
			return factorial(num) + sum(num - 1);
	}
	public static double factorial(int num){
		if(num == 1)
			return 1;
		else
			return num * factorial(num - 1);
	}
}

本章总结

  1. 方法是一段可以重复调用的代码段,在本章中因为方法可以由主方法直接调用,所以要加入public static等关键词修饰。
  2. 方法的重载:方法名相同,参数的类型或个数不同,则此方法称为重载。
  3. 方法递归调用指的是本方法的自身重复执行,在使用递归调用时一定要设置好方法的结束条件,否则会出现内存溢出问题,造成程序中断执行。

以上是关于Java学习方法的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.IllegalStateException:片段未附加到活动

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

java代码在片段活动中不起作用

java 代码片段【JAVA】

22.java方法的定义

# Java 常用代码片段