一 方法的使用
1 方法介绍以及简单方法定义(无参无返回值)
1.概述:功能,拥有功能的代码块{}
2.作用:将实现功能的具体代码放在对应的代码块中,提高了可维护性,提高了复用性
3.定义格式:
public static 返回值类型 方法名(参数列表){
方法体
return 结果;
}
//定义一个无参数无返回值的方法
1.定义:
public static void 方法名(){
方法体
}
2.使用:
在main方法中:方法名()
public class Demo01Method {
public static void main(String[] args) {
method();
}
/*
public static 返回值类型 方法名(参数列表){
方法体
return 结果;
}
*/
public static void method(){
System.out.println("你叫二狗");
}
}
2.无参数无返回值的方法执行流程
3.方法定义各部分解释
public static 返回值类型 方法名(参数列表){
方法体
return 结果;
}
a.public static ->固定的
b.返回值类型:一旦有了返回值类型,证明该方法会将最后的结果返回,类型要和最终返回的结果的类型一致;
返回值最终返回给了调用者,因为调用者调用我的方法,需要方法返回结果给调用者
c.方法名:自己取名
d.参数列表:调用方法时,要操作的数据,我们调用方法时,会将要操作的数据传递到方法内部,在内部对参数进行操作
当方法不知道用户会传递什么数据时,我们就要定义参数,等着用户调用我,给我传递具体的值
数据类型 变量名,数据类型 变量名
e.方法体:具体实现该方法的代码
f.return 结果:该方法给用户返回的结果
4.方法的注意事项
a.方法和方法之间是平级关系
b.方法中不能嵌套方法
c.void和return 值不能共存(void 代表 无返回值;return 值 代表有返回值)
d.方法不调用不执行的
e.main方法是jvm调用
5.有参数无返回值的方法定义和执行流程
1.定义格式:
public static void 方法名(参数列表){
方法体
}
2.调用:
方法名(具体的值)
需求:定义一个方法,实现两个整数相加
方法三要素:
方法名:要
参数:要 int a,int b
返回值:不要
public class Demo02Method {
public static void main(String[] args) {
//调用 调用者 用户
sum(10,20);
}
public static void sum(int a,int b){
int sum = a+b;
System.out.println(sum);
}
}
6.无参数有返回值定义以及执行流程
1.定义格式:
public static 返回值类型 方法名(){
方法体;
return 结果
}
2.调用:
数据类型 变量名 = 方法名()
需求:
定义一个方法,实现10和20相加,将结果返回给调用者
public class Demo03Method {
public static void main(String[] args) {
//调用 调用者 用户
int result = sum();//30
System.out.println(result);//30
}
//无参数有返回值的方法
public static int sum(){
int a = 10;
int b = 20;
int sum = a+b;//30
return sum;//30 return 30
}
}
7.有参数有返回值定义以及执行流程
1.定义格式:
public static 返回值类型 方法名(参数列表){
方法体;
return 结果;
}
2.调用:
数据类型 变量名 = 方法名(具体的值)->接收了return回来的结果
需求:定义一个方法,实现两个整数相加,并将结果返回
方法三要素:
方法名:要
参数:要
返回值:要
public class Demo04Method {
public static void main(String[] args) {
//调用,调用者,用户
int sum = sum(20,20);//接收sum方法 return回来的结果(result)->30
System.out.println(sum);
}
/*
需求:定义一个方法,实现两个整数相加,并将结果返回
方法三要素:
方法名:要
参数:要
返回值:要
*/
public static int sum(int i,int j){
int result = i+j;
return result;//将result结果return给了调用者
}
}
8.形式参数和实际参数区别
形式参数:定义方法的时候,定义的参数
实际参数:调用方法的时候,传递的具体的值
9.变量作为实参使用
需求:定义一个方法,比较两个整数的大小,如果第一个参数比第二个参数大,返回true,否则返回false;
方法名:要
参数:要
返回值:要 由于返回的要不就是true,要不就是false,所以返回值类型boolean
public class Demo05Method {
public static void main(String[] args) {
int i = 10;
int j = 20;
//调用
// boolean result = compare(10,20);
boolean result = compare(i,j);//相当于compare(10,20)
System.out.println(result);
}
public static boolean compare(int a,int b){//int a = i int b = j
if (a>b){
return true;
}else{
return false;
}
}
}
public class Demo06Method {
public static void main(String[] args) {
//创建Scanner对象
Scanner sc = new Scanner(System.in);
System.out.println("请你输入第一个数:");
int i = sc.nextInt();//10
System.out.println("请你输入第二个数:");
int j = sc.nextInt();//20
//调用
boolean result = compare(i,j);//compare(10,20)
System.out.println(result);
}
public static boolean compare(int a,int b){//int a = i int b = j
if (a>b){
return true;
}else{
return false;
}
}
}
二 方法的练习
1.方法练习1(判断奇偶性)
需求:
键盘录入一个整数,将整数传递到另外一个方法中,在此方法中判断这个整数的奇偶性
方法名:要
返回值:要
参数:要
public class Test01 {
public static void main(String[] args) {
//创建Scanner对象
Scanner scanner = new Scanner(System.in);
System.out.println("请您输入一个整数:");
int data = scanner.nextInt();
String result = method(data);
System.out.println(result);
}
public static String method(int data) {
if (data%2==0){
return "偶数";
}else{
return "奇数";
}
}
}
2.方法练习2(1-100的和)
需求 : 求出1-100的和,并将结果返回
方法名:要
返回值:要 int
参数:不要
public class Test02 {
public static void main(String[] args) {
//调用方法,调用处,用户
int result = sum();
System.out.println(result);
}
public static int sum(){
//定义一个变量接收两个数的和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum+=i;
}
return sum;
}
}
3.方法练习3(不定次数打印)
需求:
定义一个方法,给这个方法传几,就让这个方法循环打印几次"我爱Java"
方法名:要
返回值:不要
参数:要
public class Test03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
//调用方法
print(n);
}
public static void print(int n){
for (int i = 0;i<n;i++){
System.out.println("I Love You Java!");
}
}
}
4.方法练习4(遍历数组)
需求:
在main方法中定义一个数组,将数组传递到方法中,在此方法中遍历数组
public class Test04 {
public static void main(String[] args) {
//定义数组
int[] arrA = {1,2,3,4,5};
method(arrA);
}
public static void method(int[] arrB){//int[] arrB = arrA
//遍历数组
for (int i = 0; i < arrB.length; i++) {
System.out.println(arrB[i]);
}
}
}
5.方法练习5(求数组最大值)
需求:
在main方法中定义数组,传递到另外一个方法中,在此方法中实现获取数组最大值
public class Test05 {
public static void main(String[] args) {
//定义数组
int[] arrA = {5,3,6,4,6,8};
//调用者,用户
int max = method(arrA);
System.out.println(max);
}
public static int method(int[] arrB){
int max = arrB[0];
for (int i = 0; i < arrB.length; i++) {
if (max<arrB[i]){
max = arrB[i];
}
}
return max;
}
}
6.方法练习6(按照指定格式输出数组元素)
需求:
1.定义一个数组 int[] arr = {1,2,3,4}
2.遍历数组,输出元素按照[1,2,3,4]
方法名:要
参数:要
返回值:不要,直接输出
public class Test06 {
public static void main(String[] args) {
int[] arr = {1,2,3,4};
method(arr);
}
public static void method(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
}
快速将代码抽到一个方法中:选中要抽取的方法->ctrl+alt+m
7.练习7
数组作为返回值返回
public class Test {
public static void main(String[] args) {
//调用者,用户
int[] arr1 = sum();//int[] arr1 = arr
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
public static int[] sum(){
//定义数组
int[] arr = {1,2};
return arr;
}
}
三 方法注意事项终极版
1.方法不调用不执行
2.方法之间不能嵌套
3.方法的执行顺序之和调用顺序有关
4.void 和return 值不能共存(void 代表无返回值;return 值代表先将结果返回,然后结束方法)
但是void能和return共存
5.调用方法的时候,要看下面有没有此方法,要完全匹配
6.一个方法中只能有一个返回值