java中常见的方法

方法和语句块

语句块: 即是放在花括号中的语句,不可以多次调用。
方法:即是加了名字的语句块,可以反复调用,用来完成特定功能的的定片段。
根据需要进行调用,在方法后面可以添加参数,也可以有返回值。普通的方法需要通过对象来进行调用。

方法的组成:

  1. 形参:定义方法是写的 *
  2. 实参:是调用方法时实际用的参数
  3. 返回值:可有可无。return有两个作用,1.结束方法的运行,2.返回一个值
  4. 返回值类型:

注意事项:

1.实参的数据类型,顺序,数目必须和形参相匹配。
2.return语句第终止方法的运行并指定要返回的数据。
3.java中进行方法调用中传递实参时,遵循值传递的原则(传递的都是数据的副本)
4.基本类型传递的是该数据的copy值。
5.引用数据类型传递的是该对象引用的copy值,但是指向的是同一个对象。

带标签的break和continue

public class Testlf {
	public static void main(String[] args) {
		outer:for(int i=100;i<150;i++) {
			for(int j=2;j<i/2;j++) {//超过一半的数就已经除不尽了
				if(i%j==0) {
					continue outer;//如果是continue的话,只结束本层循环,
					//如果需要跳出外层循环的话,可以添加标签
				}
			}
			System.out.println(i);
		}
	}
}

方法的重载

实际是完全不同的方法,只不过是名字相同。
构成重载的条件: 形参类型,个数,顺序不同
只有返回值不同不构成重载

public class Testlf {
	public static void main(String[] args) {
		
	}
	public static int add(int a,int b) {
		int sum=a+b;
		return sum;
	}
	public static int add(int a,int b,int c) {
		int sum=a+b+c;
		return sum;
	}
	public static double add(double a,double b) {
		double sum=a+b;
		return sum;
	}
	
	/ * //只有返回值不同,不构成重载
	public static double add(int a,int b) {
		double sum=a+b;
		return sum;
	}
	//只有参数名称不同,不构成重载
	public static int add(int a1,int b2) {
		double sum=a+b;
		return sum;
	}*/
}

递归结构

即是自己调用自己

递归的定义包含两个方面:

  • 递归头:也即是递归的结束条件,什么时候不调用自身的方法。
  • 递归体:即是什么时候需要自己调用自己。

这用调用会无休止的调用下去,知直到把系统的资源都占满了,最后抛出异常

public class Testlf {
	public static void main(String[] args) {
		a();
	}
	static void a() {
		System.out.println("a");
		a();
		b();
	}
	static void b() {
		System.out.println("b");
	}
} 

用递归求阶乘的方法

public class Testlf {
	public static void main(String[] args) {
		System.out.println(mutiply(10));
	}
	static long mutiply(int n) {
		if(n==1)//递归头
			return 1;
		else
			return n*mutiply(n-1);//递归体
		
	}
	
} 

利用循环的方法求阶乘:

public class Testlf {
	public static void main(String[] args) {
		System.out.println(mutiplyloop(10));
	}
	
	static long mutiplyloop(int n) {
		long result=1;
		while(n>1) {
			result*=n*(n-1);
			n=n-2;
		}
		return result;
	}
	
}

注意事项:
任何可以用递归解决的问题,都可以使用迭代的方法解决。但是递归的方法既消耗时间,也占用空间

发布了43 篇原创文章 · 获赞 11 · 访问量 2597

猜你喜欢

转载自blog.csdn.net/weixin_43328816/article/details/104154263