方法1
具有特殊功能的一段代码,可以通过名字重复调用。
提高了代码的重用性、封装性,简化程序设计。
方法的定义:public static 返回值类型 方法名(形式参数列表) {
方法语句;
}
位置:在类中,和主方法并列。
形式参数:表明调用方法的时候需要调用者传入数据的类型。
相当于声明变量。多个参数之间用 , 隔开。
实际参数:调用方法时真实传入的数据,参数数量、顺序、类型要与形式参数一致,
相当于给声明的变量赋值,多个参数之间也用 , 隔开。
案例
分隔符的种类和数量:
package com.DaYu;
public class Demo03 {
public static void main(String[] args) {
System.out.println("空山鸟飞绝");
line(10,"!");
System.out.println("万径人踪灭");
line(15,"@");
System.out.println("孤舟蓑笠翁");
line(20,"$");
System.out.println("独钓寒江雪");
line(25,"#");
}
public static void line(int n,String s) {
for(int i = 0;i<n;i++) {
System.out.print(s);
}
System.out.println();
}
}
结果:
空山鸟飞绝
!!!!!!!!!!
万径人踪灭
@@@@@@@@@@@@@@@
孤舟蓑笠翁
$$$$$$$$$$$$$$$$$$$$
独钓寒江雪
#########################
方法的返回值:
1. void: 表明方法没有返回值类型。
2. return:(1)用于有返回值类型的方法中,将返回值返回给方法的调用者;
返回值类型可以是基本数据类型,也可以是引用数据类型。
(2)用于没有返回值类型的方法中,相当于System.exit(0),结束代码。
方法的调用:方法名(); / 方法名(实际参数);
方法调用的内存分析:java虚拟机内存分为栈内存、堆内存和方法区;
调用方法时会进行圧栈操作,方法调用完毕会进行弹栈操作;
此过程遵循“先进后出”的原则(FILO)。
拓展练习
1.定义一个方法 ,功能是 输入两个整数,返回两者中最大的数
package com.DaYu;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入两个整数");
int a = sc.nextInt();
int b = sc.nextInt();
int max = getMax(a,b);
System.out.println(max);
}
public static int getMax(int a, int b) {
if(a>b) {
return a;
}else {
return b;
}
}
}
2.定义一个方法,功能是 判断两个整数是否相等
思路:返回值类型:boolean
方法名:isEquale
形参列表:int a, int b
package com.DaYu;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入两个整数");
int a = sc.nextInt();
int b = sc.nextInt();
boolean f = isEquals(a,b);
System.out.println(f);
}
public static boolean isEquals(int a,int b) {
return a==b;
}
}
3.定义一个方法,可以打印指定行数和列数的矩形
package com.DaYu;
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
int row = sc.nextInt();
System.out.println("请输入列数");
int list = sc.nextInt();
printRact(row,list);
}
public static void printRact(int row, int list) {
for (int i = 1; i <= row; i++) {
for (int j = 1; j <= list; j++) {
System.out.print("*");
}
System.out.println();
}
}
}