方法体
任何一个方法都有一个方法体,方法体用大括号括起来:
1. 在大括号中编写Java语句
2. 并且在方法体中的代码有执行顺序,遵循从上而下
方法的调用
当这个方法修饰符列表有static关键字的时候:
语法格式:
类名.方法名(实际参数列表);
调用者和被调用者在同一个类中,可以省略
演示代码
package chapter2;
/*
找出1-100所有的质数
*/
public class method04 {
public static void main(String[] args) {
for (int i = 2; i < 100; i ++){
if(isPrime(i)){
System.out.println(i);
}
}
}
public static boolean isPrime(int num) {
//判断num是否为质数
//是质数:return true
//不是质数: return false
for(int i = 2; i < num/2; i++){
if(num % i == 0){
return false;
}
}
return true;
}
}
用户登录程序,建议手写一次
package chapter2;
import java.util.Calendar;
import java.util.Scanner;
/*
用户登录程序
*/
public class method05 {
public static void main(String[] args) {
login();
}
/**
* 完成登录业务,直到用户登录成功
* @author dujbin
* version 1.0
* since 1.0
*/
public static void login(){
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("用户名 :");
System.out.println("密码 : ");
String username = scanner.next();
String password = scanner.next();
Boolean isOk = check(username, password);
if (isOk) {
System.out.println("登陆成功");
return;
} else {
System.out.println("登录失败");
}
}
}
/**
* 检查用户名和密码是否正确
* @param username
* @param password
* @return
*/
public static boolean check(String username, String password){
/*
if(username.equals("admin") && password.equals("123")){
return true;
}else {
return false;
}
*/
return username.equals("admin") && password.equals("123");
}
}
方法执行时的内存变化
- 方法如果只定义,不调用是不会分配内存空间
- 方法调用的瞬间会在 JVM 的内存当中分配活动场所 此时发生压栈动作
- 方法一旦结束,给该方法分配的内存空间就会释放,此时发生弹栈操作
package chapter2;
public class method06 {
public static void main(String[] args) {
m1();
System.out.println("main begin");
}
public static void m1(){
System.out.println("m1 begin");
m2();
System.out.println("m1 over");
}
public static void m2(){
System.out.println("m2 begin");
m3();
System.out.println("m2 over");
}
public static void m3(){
System.out.println("m3 begin");
System.out.println("m3 over");
}
}