方法的概念\有参无参返回值\重载

什么是方法?

声明: public static void main(String[] args){ 方法体 }
声明: 访问修饰符 返回类型 方法名(参数列表){ 方法体 }
public static 访问修饰符
void 返回类型 (void表示不返回)
main 方法名
(String[] args) 参数列表
方法main 主方法是JAVA中特殊的方法 执行的入口
方法不支持嵌套

方法调用 使用对象名调用方法 例:
Scanner sc = new Scanner(System.in);
sc.nextInt();
sc.next();

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

方法分类4类

无参无返回值方法

public class JiechenghDemo {
public void printStar() {
	System.out.println("--------------");	}
public static void main(String[] args) {
	//创建一个JiechenghDemo类的对象jiechenghDemo
	JiechenghDemo jiechengDemo = new JiechenghDemo();
	//使用对象名.方法名()去调用方法	
	for(int i=1;i<5;i++){
		jiechengDemo.printStar();
		}}}

无参带返回值方法

public class JiechenghDemo {
	//求长方形面积的方法
	public int area() {
			int length=5;
			int width=3;
			int getarea = length*width;
			return getarea; //返回语句
		}
	public static void main(String[] args) {
		JiechenghDemo jiechengDoem = new JiechenghDemo();
		System.out.print("长方形的面积为"+jiechengDoem.area());
	}}

带参无返回值方法

public class JiechenghDemo {
	//求最大值
	public void max(float a,float b) {
			float max;
			if(a>b) {
				max=a;
			}else {
				max=b;
			}
			System.out.print("a和b的最大值="+max);
		}
	public static void main(String[] args) {
		JiechenghDemo jiechengDoem = new JiechenghDemo();
		float a=15,b=23;
		jiechengDoem.max(a, b);
	}}

带参带返回值方法

public class JiechenghDemo {
//求阶乘的方法 n!=1×2×3×...×n  //方法不能嵌套定义 
	public int fac(int n) {
		int s=1;
		for (int i=1;i<=n;i++) {
			s=s*i;  //s*=i
		}
		return s;
	}
	
	public static void main(String[] args) {
		JiechenghDemo jiechenghDemo = new JiechenghDemo();
		int fac = jiechenghDemo.fac(5);
		System.out.println("5!="+fac);
		//求阶乘和1到5的阶乘和
		int sum=0; //存放和
		for(int i=1;i<=5;i++) {
			fac = jiechenghDemo.fac(i); //当i=1就得出1!的值 是2时2!的值
			sum=sum+fac;
		}
		System.out.println("1!+2!+3!+4!5!="+sum);
	}
}

结果:
5!=120
1!+2!+3!+4!5!=153

方法调用打印输出一维数组元素的所有值

public class JiechenghDemo {
//打印输出数组元素的值
	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) {
		JiechenghDemo jiechenghDemo = new JiechenghDemo();
		int[] arr = {33,44,77,8,99,12,32};
		jiechenghDemo.printArray(arr);
	}
}

查找一维数组元素值的方法

public class JiechenghDemo {
//查找一维数组元素值的方法
	public boolean search(int n,int[] arr) {
		boolean flag = false; //默认是没找到 返回false;
		for(int i=0;i<arr.length;i++) {
			if(arr[i] ==n) {
				flag = true;//找到了 就要break跳出循环
				break;
			}		}
		return flag;	}
	
	public static void main(String[] args) {
		int[] arr1 = {2,3,4,5,6};
		int n = 1;
		JiechenghDemo jiechenghDemo = new JiechenghDemo();
		System.out.println(jiechenghDemo.search(n, arr1));
	}
}

方法重载

方法名相同,参数列表不同叫重载
调用的时候定义相同方法名但是参数列表比如一个是int 一个是double
例public void plus(int a,int b)
public double plus(double m, double n)
方法调用的时候 给的参数如下:
int m=5,n=10;
Demo.plus(m,n);则调用的public void plus(int a,int b)
Demo.plus(5.4,8.2);则调用的public double plus(double m, double n)

方法传值

普通变量传值 主方法定义m,n 赋给调用方法定义a,b
不管调用方法中a,b值怎么处理
都不会影响到主方法m,n的实际值

数组传值则 同时也可以修改主方法的数值 案例:

public class JiechenghDemo {
	public void updateArray(int[] a) {
		a[3]=15; //修改数组中的值
		System.out.println("数组a的元素为");
		for(int n:a) {
			System.out.print(n+"   ");
		}
		System.out.println();
	}
	
	public static void main(String[] args) {
		int a1[] = {1,2,3,4,5,6};
		System.out.println("方法调用前数组a1的元素为:");
		for(int n:a1) {
			System.out.print(n+"   ");
		}
		System.out.println();
		
		JiechenghDemo jc = new JiechenghDemo();
		jc.updateArray(a1);
		System.out.println("方法调用前数组a1的元素为:");
		for(int n:a1) {
			System.out.print(n+"   ");
		}
	}
}

输出结果:

方法调用前数组a1的元素为:
1 2 3 4 5 6
数组a的元素为
1 2 3 15 5 6
方法调用前数组a1的元素为:
1 2 3 15 5 6

可变参数列表

例:public void sum(int… n){} //可变参数列表所在的方法是最后被访问的

/**
   * 文档注释 关于可变参数和重载的问题
 * @author admin
 * @version 1.0
 */
public class JiechenghDemo {
	//可变参数列表所在的方法是最后被访问的
	public int plus(int a,int b) {
		System.out.println("不带可变参数的方法被调用!");
		return a+b;
	}
	public int plus(int... a) {
		int sum = 0;
		for(int n:a) {
			sum=sum+n;
		}
		System.out.println("带可变参数的方法被调用!");
		return sum;
	}
	public static void main(String[] args) {
		JiechenghDemo jiechenghDemo = new JiechenghDemo();
		System.out.println(jiechenghDemo.plus(1,2)); 
		System.out.println(jiechenghDemo.plus(1,2,3)); 
	}
	
}

不带可变参数的方法被调用!3
带可变参数的方法被调用!6

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值