静态方法
1. 方法的概念
用来解决特定的问题(实现特定的功能)的一段代码,可以反复使用。
2.定义语法
public static void 方法名称( ){
//方法主体
}
3. 定义位置
与main方法平级
4.调用
在需要调用方法的位置,直接书写方法名();即可实现调用
代码执行到调用方法的位置,会先执行方法内部的代码,再接着执行后续的代码
package com.qfedu.test1;
/**
* 以两种 方式打印诗句 每句诗以后有十个横线
* @author WHD
*
*/
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();
}
}
package com.qfedu.test1;
/**
* 使用方法实现 横线 的打印
* 方法的概念:用来解决特定的问题(实现特定的功能)的一段代码,可以反复使用。
* 定义语法:public static void 方法名称(){ // 方法体}
* 定义位置:与main方法平级
*
* @author WHD
*
*/
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();
}
}
5.参数
多数情况下,方法与调用者之间需要数据的交互;调用者必须提供必要的数据,才能使方法完成相应的功能。
形参:形式参数,指方法定义的时候书写的参数,形参相当于局部变量的声明
形参规定了参数的个数、类型、顺序,指实参必须遵守这个规定
实参:实际参数,指用户调用方法的时候传入的参数,实参相当于局部变量的赋值
5.1 单个参数
package com.qfedu.test2;
/**
* 使用单个参数实现 可以让用户指定打印符号的个数
* @author WHD
*
*/
public class Test1 {
public static void main(String[] args) {
System.out.println("窗前明月光");
printSign(10); // 实参
System.out.println("疑是地上霜");
int num = 5;
printSign(num); // 实参
System.out.println("举头望明月");
int count = 7;
printSign(count); // 实参
System.out.println("低头思故乡");
int a = 10;
int b = 2;
int c = a + b;
printSign(c); // 实参
}
/**
* count 属于形参(形式参数,指方法定义的时候书写的参数)
* 形参规定了参数的个数、类型、顺序,指实参必须遵守这个规定
* 实参:实际参数,指用户调用方法的时候传入的参数
* @param count 这个参数用于让用户指定符号个数
*/
public static void printSign(int count) {
for(int i = 1;i <= count;i++) {
System.out.print("-");
}
System.out.println();
}
}
5.2 多个参数
多个参数,在方法定义的时候可以根据需求写任意个数的,任意类型的参数
使用多个参数实现 可以让用户指定个数和类型 打印符号
package com.qfedu.test2;
/**
* 多个参数,在方法定义的时候可以根据需求写任意个数的,任意类型的参数
* 使用多个参数实现 可以让用户指定个数和类型 打印符号
* @author WHD
*
*/
public class Test3 {
public static void main(String[] args) {
System.out.println("窗前明月光");
printSign(8,"&");
System.out.println("疑是地上霜");
int count = 5;
String str1 = "$";
printSign(count,str1);
System.out.println("举头望明月");
String str2 = "#";
printSign(12,str2);
System.out.println("低头思故乡");
printSign(3,"@");
}
public static void printSign(int count,String sign) {
for(int i = 1;i <= count;i++) {
System.out.print(sign);
}
System.out.println();
}
}
6. 返回值和返回值类型
方法调用时,一些情况下无需返回结果;另一些情况下则必须返回结果。
如果方法需要返回结果,则将void替换为需要返回结果的类型,然后再方法的末尾使用return关键字返回对应
类型的值即可。
return表示中断方法并且返回内容。也就是说return关键字之后不能再写代码了。
package com.qfedu.test3;
/**
* 编写一个方法 计算两个数之和 然后 针对结果进行 对2取余操作 判断结果是偶数还是奇数
* @author WHD
*
*/
public class Test1 {
public static int add(int numa,int numb) {
System.out.println("两个数之和是:"+ (numa + numb));
int sum = numa + numb;
return sum;
}
public static void main(String[] args) {
int sum = add(200,200);
if(sum % 2 == 0) {
System.out.println("这个数字是偶数");
}else{
System.out.println("这个数字是奇数");
}
}
}
7. return关键字用法
7.1 用法1
package com.qfedu.test4;
/**
* 使用方法模拟加法计算
* @author WHD
*
*/
public class Test1 {
public static void main(String[] args) {
add(10,20);
System.out.println(addtion(10,20));
}
public static void add(int a,int b) {
System.out.println("方法体中打印结果:" + (a + b));
}
public static int addtion(int a,int b) {
return a + b;
}
}
7.2 用法2
在分支结构中书写返回值,
如果在分支结构中书写了return关键字,必须保证每一种情况都有正确的返回值
package com.qfedu.test4;
/**
* 在分支结构中书写返回值,必须保证每一种情况都有正确的返回值
* @author WHD
*
*/
public class Test2 {
public static void main(String[] args) {
System.out.println(isEven(1));
System.out.println(newIsEven(11) == true ? "偶数" : "奇数");
}
public static String isEven(int num) {
if(num % 2 == 0 ) {
return "偶数";
}
return "奇数";
}
public static boolean newIsEven(int num) {
if(num % 2 == 0) {
return true;
}
return false;
}
}
7.3 用法3
应用在没有返回值类型(void)的方法中:
return表示结束当前方法
package com.qfedu.test4;
/**
* 返回值类型为void 在方法中也可以使用return 但是return之后不能加任何内容
* 此时return只表示中断方法
* @author WHD
*
*/
public class Test3 {
public static void main(String[] args) {
m1();
// 后续代码
}
public static void m1() {
for (int i = 1; i <= 20; i++) {
if(i == 10) {
return; // break
}
System.out.println(i);
}
System.out.println("m1方法执行结束");
}
}
8. 多级调用
方法与方法之间 可以互相直接调用
package com.qfedu.test5;
/**
* 多级调用
* 方法与方法之间 可以互相直接调用
* @author WHD
*
*/
public class Test1 {
public static void main(String[] args) {
m1();
}
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");
}
}