java学习笔记(Day5)

方法

1 定义

解决一类问题的代码的有序组合,是一个功能模块

2 方法声明

访问修饰符 返回类型 方法名(参数列表){
      方法体
}

3 方法分类

根据是否带参数、是否返回值分为4类

3.1 无参无返回值方法

使用对象名.方法名去调用方法
注意:方法在类的内部定义
使用案例:打印星号

public class MethodDemo {
	//打印输出星号的方法
	public void printStar() {
		System.out.println("************");
	}

	public static void main(String[] args) {
		MethodDemo myMethodDemo=new MethodDemo();
		myMethodDemo.printStar();
	}
}
3.2 无参带返回值的方法

例如:Scanner方法
使用案例:求长方形面积

public class RS {
	//求长方形面积的方法
	public int area() {
		int length=10;
		int width=5;
		int getarea=length*width;
		return getarea;//返回语句
	}
	public static void main(String[] args) {
		RS rc=new RS();
		int x=rc.area();
		System.out.println("面积:"+x);
	}
}
3.3 有参无返回值方法

使用案例:求两数中的最大值

public class MaxDemo {
	public void max(int x,int y) {
		int max;
		if(x>y) {
			max=x;
		}
		else {
			max=y;
		}
		System.out.println("最大值为"+max);
	}
	public static void main(String[] args) {
		MaxDemo maxDemo=new MaxDemo();
		int x=5,y=3;
		maxDemo.max(x,y);	
	}
}
3.4 有参有返回值的方法

使用案例:求阶乘和

public class FacDemo {
	public int fac(int n) {
		int s=1;
		for (int i=1;i<=n;i++) {
			s*=i;		
		}
		return s;
	}
	public static void main(String[] args) {
		FacDemo facDemo=new FacDemo();
		int fac=facDemo.fac(3);
		int sum=0;
		for(int i=1;i<=5;i++) {
			fac=facDemo.fac(i);
			sum+=fac;
		}
		System.out.println(""+sum);
	}
}
4 数组作为方法参数

使用案例:输出数组元素

public class ArrayMethod {
	public void printArray(int[] arr) {
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+" ");
		}
		System.out.println();
	}

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int[] arr= {10,20,30,40,50};
		ArrayMethod am=new ArrayMethod();
		am.printArray(arr);
	}
}

使用案例:查找数组元素

import java.util.Scanner;

public class Searchx {
	public boolean search(int n,int[] arr) {
		boolean flag=false;
		for(int i=0;i<arr.length;i++) {
			if(arr[i]==n) {
				flag=true;
				break;
			}
		}
		return flag;
	}
	public static void main(String[] args) {
		int[] arr= {10,20,30,40,50};
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入要查找的数据");
		int n=sc.nextInt();
		Searchx as=new Searchx();
		boolean flag=as.search(n, arr);
		if(flag) {
			System.out.println("找到了");		
		}
		else {
			System.out.println("没找到");
		}
	}
}
5 方法重载

定义
方法名相同,参数列表不同
方法执行顺序
主方法->调用的方法->主方法中剩下的部分
主方法必须使用对象的名称进行调用,同一个类中的普通方法直接使用方法的名字进行调用
数组的参数传递问题
在方法中对数组元素进行修改时、也影响到了主方法中的数组。
引用类型中的数组会产生影响。
可变参数列表(可变元参数)
定义:参数的数量不确定
使用案例:


public class ArgsDemo {
	public void sum(int...n) {
		int sum=0;
		for(int i:n) {
			sum+=i;
		}
		System.out.println("sum="+sum);
	}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		ArgsDemo ad=new ArgsDemo();
		ad.sum(1);
		ad.sum(1,2);
		ad.sum(1,2,3);
	}
}

注意:

  • 参数列表中如果有两个以上的参数,可变参数一定是在最后的
  • 可变参数列表所在的方法是最后被访问的
  • 可以将数组传递给可变参数列表
  • 数组可以将和可变参数列表兼容,可变参数列表不能与数组兼容;不能将可变参数列表的值传递给数组,可以将数组的值传递给可变参数列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值