栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-方法

方法 1. 概念

方法:一系列代码指令的集合,用来解决特定的问题,可以重复使用(调用)

格式:public static void 方法名(){// 书写方法的逻辑代码}

位置:与main方法平级

方法的优点:简化代码书写,提高程序的复用性,扩展性,可维护性

2. 实现优化打印诗句

以现有知识,至少使用两种方式打印诗句

问题:以下代码实现 了我们需要的效果,但是有一些重复的代码(冗余),这样编写非常啰嗦,不简练

我们应该将重复的代码 只书写一次 然后多次调用(使用) 解决方案:使用方法优化

package com.qfedu.test1;

public class Test1 {
	public static void main(String[] args) {
		System.out.println("床前明月光");
		System.out.println("----------");
		System.out.println("疑是地上霜");
		System.out.println("----------");
		System.out.println("举头望明月");
		for (int i = 1; i <= 10; i++) {
			System.out.print("-");
		}
		System.out.println();
		System.out.println("低头思故乡");
		for (int i = 1; i <= 10; i++) {
			System.out.print("-");
		}
		System.out.println();
	}
}

ctrl + 回车 跳出代码编辑框

解决方法:

package com.qfedu.test1;

public class Test2 {
	public static void main(String[] args) {
		System.out.println("床前明月光");
		printSign();
		System.out.println("疑是地上霜");
		printSign();
		System.out.println("举头望明月");
		printSign();
		System.out.println("低头思故乡");
		printSign();
	}
	
	
	public static void printSign() {
		for(int i = 1;i <= 10;i++) {
			System.out.print("-");
		}
		System.out.println();
	}

}
3. 使用单个参数优化打印诗句

参数:

形参(形式参数):是指定义方法的时候书写的参数,相当于局部变量的声明

形参规定了参数的个数、类型、顺序,表示在调用方法的时候必须遵循这个规定

实参(实际参数):调用方法的时候传入的参数 ,相当于局部变量的赋值

之前com.qfedu.test.Test2类中的代码 可以实现代码的重用 但是不够灵活

因为每次调用方法将固定答疑10个-,我们可以使用参数来让用户(调用者)指定

打印-的个数,使程序更加灵活

package com.qfedu.test2;

public class Test1 {
	public static void main(String[] args) {
		System.out.println("床前明月光");
		
		printSign(10); // 实参
		
		System.out.println("疑是地上霜");
		
		int count = 6;
		
		printSign(count); // 实参
		
		System.out.println("举头望明月");
		
		int a = 10;
		
		int b = 2;
		
		int c = a + b;
		
		printSign(c); // 实参
		
		System.out.println("低头思故乡");
		
		int num = 7;
		
		printSign(num); // 实参
	}

	
	public static void printSign(int num) {
		for (int i = 1; i <= num; i++) {
			System.out.print("-");
		}
		System.out.println();
	}




}

4. 使用多个参数优化打印诗句

观察我们之前书写的com.qfedu.test2.Test1类

使用了单个参数可以让用户灵活的指定符号的个数,但是目前不能让用户指定符号的种类

所以,我们使用多个参数来实现

让用户传入两个参数,分别为符号的个数、符号的类型

ctrl + d 删除整行

ctrl + a 全选 ctrl + i 自动对齐

package com.qfedu.test3;

public class Test1 {
	public static void main(String[] args) {
		System.out.println("床前明月光");
		printSign(10,"^");
		
		System.out.println("疑是地上霜");
		int num = 7;
		String sign = "#";
		printSign(num,sign);
		
		
		System.out.println("举头望明月");
		printSign(6,"&");

		System.out.println("低头思故乡");
		printSign(8,"*");

	}
	
	
	public static void printSign(int num,String sign) {
		for (int i = 1; i <= num; i++) {
			System.out.print(sign);
		}
		System.out.println();
	}
	
	
	
}

参数定义结合实际需求来书写个数,类型,顺序

使用方法模拟实现用户登录

package com.qfedu.test3;

public class Test2 {
	public static void login1(String userName,String password) {
		if(userName.equals("admin") && password.equals("123456")) {
			System.out.println("登录成功");
		}else {
			System.out.println("用户名或者密码错误");
		}
	}
	
	public static void login2(String userName,String password,String validateCode) {
		if(userName.equals("root") && password.equals("admin123") && validateCode.equals("6666")) {
			System.out.println("登录成功");
		}else {
			System.out.println("用户名或者密码错误");
		}
	}
	
	public static void main(String[] args) {
		login1("admin","123456");
		
		String userName = "root";
		String password = "admin12";
		String validateCode = "6666";
		login2(userName,password,validateCode);
		
	}
	
	
	
	
	
}

5.return关键字

return:返回

5.1 return关键字用法1

返回值与返回值类型

void关键字表示此方法没有任何返回值

还可以使用八种基本数据类型和引用数据类型来代替void,表示方法会返回一个定义的类型的值

return关键来返回具体的内容,表示中断方法并且返回内容

需求:编写一个方法用于实现两个数之和

package com.qfedu.test4;

public class Test1 {
	public static int addtion(int a,int b) {
		int sum = a + b;
		return sum;
	}
	
	public static void add(int a,int b) {
		System.out.println("求和" + (a + b));
	}
	
	public static void main(String[] args) {
		int sum = addtion(101,202);
		
		System.out.println("在main方法中获取的sum的值:" + sum);
		
		sum *= 10;
		
		System.out.println(sum);
		
		
		add(10,22);

	}

}
5.2 return关键字用法2

编写方法实现判断奇数偶数

如果需要在分支结构中使用return关键字返回结果,那么必须保证每一条分支都有正确的结果返回

package com.qfedu.test5;

public class Test1 {
	public static String isEven1(int num) {
		if(num % 2 == 0) {
			return "偶数";
		}else {
			return "奇数";
		}
	}
	
	public static boolean isEven2(int num) {
		if(num % 2 == 0) {
			return true;
		}else {
			return false;
		}
	}
	
	public static String isEven3(int num) {
		if(num % 2 == 0) {
			return "偶数";
		}
		return "奇数";
	}
	
	public static boolean isEven4(int num) {
		if(num % 2 == 0) {
			return true;
		}
		return false;
		
	}
	
	public static void m1() {
		
	}
	
	
	
	
	public static void main(String[] args) {
		String result = isEven1(11);
		System.out.println(result);
		
		System.out.println(isEven2(66));
		
		
		// System.out.println(m1()); 返回值为void  不能接收 也不能打印
	}
	
	
}

5.3 return关键字用法3

在返回值类型为void的方法中,也可以使用return,return之后不能有任何内容,

此时return只表示中断方法,不能返回内容

package com.qfedu.test5;

public class Test2 {
	public static void m1() {
		for (int i = 1; i < 20; i++) {
			if(i == 10) {
				return; // break 只能中断循环  return是中断方法 注意区别
			}
			System.out.println(i);
		}
		System.out.println("m1方法执行完毕");
	}
	
	public static void main(String[] args) {
		m1();
	}
	
}

6. 方法总结

注意:一个类中可以定义多个方法,方法之间属于并列关系,不可嵌套。

经验:一个方法只做一件事。

好处:

减少代码冗余。
提高复用性。
提高可读性。
提高可维护性。
方便分工合作。

7. 方法之间的调用

静态方法与静态方法之间互相直接调用

package com.qfedu.test6;

public class Test1 {
	public static void m1() {
		System.out.println("m1 method start");
		m2();
		System.out.println("m1 method end");
	}
	
	
	public static void m2() {
		System.out.println("m2 method start-------------");
		
		System.out.println("m2 method end-------------");
	}
	
	public static void main(String[] args) {
		m1();
	}
	
}


8. 方法重载overload

方法重载 OverLoad 是一种现象

概念:同一个类中,方法名相同,参数列表不同(个数、类型、顺序),即可称之为方法重载,

跟返回值、访问权限修饰符无关

优点:屏蔽差异化,使程序结构更加统一,便于维护、使用

package com.qfedu.test6;

public class Test2 {
	
	public static int add(int a,String str) {
		System.out.println(a + str);
		return 10;
	}
	
	
//	public static void add(String name,int num) {
//		
//	}  编译不通过 因为与下边的方法 参数列表重复了 个数 类型 顺序 都一样
	
	public static void add(String str,int a) {
		System.out.println(str + a);
	}
	
	public static void add(int a,int b) {
		System.out.println(a + b);
	}
	
	public static void add(int a,int b,int c) {
		System.out.println(a + b + c);
	}
	
	public static void add(int a,int b,int c,int d) {
		System.out.println(a + b + c + d);
	}
	
	public static void add(int a,int b,int c,int d,int e) {
		System.out.println(a + b + c + d + e);
	}
	
	public static void add(int a,int b,int c,int d,int e,int f) {
		System.out.println(a + b + c + d + e + f);
	}
	
	public static void main(String[] args) {
		add(10,20);
		add(10, 20, 30, 40);
		add(10, "aaaa");
		
	}
	
	
}



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/936635.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号