方法工程
本篇定位
本篇聚合 IDEA 工程 method-app 的全部源码练习(2025-12 学),按包分节全文收录——当年的学习注释(// 目标:… // 需求:…)原样保留,是最真实的练习轨迹。工程怎么建、模块/包/类怎么管理见 00-管理项目。
包含 11 个 .java 练习,目录结构:
method-app/src/
├── com/zwnsyw/define/MethodDemo1.java
├── com/zwnsyw/define/MethodDemo2.java
├── com/zwnsyw/define/MethodProblemDemo3.java
├── com/zwnsyw/define/MethodTest4.java
├── com/zwnsyw/overload/MethodOverLoadDemo1.java
├── com/zwnsyw/overload/MethodTest2.java
├── com/zwnsyw/parameter/MethodDemo1.java
├── com/zwnsyw/parameter/MethodDemo2.java
├── com/zwnsyw/parameter/MethodTest3.java
├── com/zwnsyw/parameter/MethodTest4.java
└── com/zwnsyw/returndemo/ReturnDemo1.java
方法的定义
定义格式与设计练习。
MethodDemo1.java
package com.zwnsyw.define;
public class MethodDemo1 {
public static void main(String[] args) {
// 目标:掌握定义方法的完整格式,搞清楚使用方法的好处。
// 需求:假如现在很多程序员都要进行2个整数求和的操作。
// 1、李工。
int rs = sum(10, 20);
System.out.println("和是:" + rs);
// 2、张工。
int rs2 = sum(30, 20);
System.out.println("和是:" + rs2);
}
public static int sum(int a,int b) {
int c = a + b;
return c;
}
}
MethodDemo2.java
package com.zwnsyw.define;
public class MethodDemo2 {
public static void main(String[] args) {
// 目标:掌握按照方法解决的实际业务需求不同,设计出合理的方法形式来解决问题。
// 需求:打印多行Hello World.
printHelloWorld(3);
System.out.println("---------------");
printHelloWorld(6);
}
/**
有参数,无返回值的方法
*/
public static void printHelloWorld(int n){
for (int i = 1; i <= n; i++) {
System.out.println("Hello World");
}
}
}
MethodProblemDemo3.java
package com.zwnsyw.define;
public class MethodProblemDemo3 {
public static void main(String[] args) {
// 目标:搞清楚使用方法时的几个常见问题。
// 1、方法在类中的位置放前放后无所谓,但一个方法不能定义在另一个方法里面。
// printHelloWorld();
// 2、方法的返回值类型写void(无返回申明)时,方法内不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
// 3、return语句的下面,不能编写代码,属于无效的代码,执行不到这儿。
// 4、方法不调用就不会执行, 调用方法时,传给方法的数据,必须严格匹配方法的参数情况。
printHelloWorld();
// 5、调用有返回值的方法,有3种方式:1、可以定义变量接收结果 2、或者直接输出调用,3、甚至直接调用;
int rs = sum(10, 20);
System.out.println(rs);
// 直接输出调用
System.out.println(sum(10, 90));
// 直接调用
sum(100, 200);
// 6、调用无返回值的方法,只有1种方式:1、只能直接调用。
printHelloWorld();
}
public static int sum(int a, int b){
int c = a + b;
return c;
}
public static void printHelloWorld(){
for (int i = 1; i <= 3; i++) {
System.out.println("Hello World");
}
}
}
MethodTest4.java
package com.zwnsyw.define;
public class MethodTest4 {
public static void main(String[] args) {
// 目标:掌握设计方法的技巧。
int rs = add(5);
System.out.println("1-5的和是:" + rs);
int rs2 = add(100);
System.out.println("1-100的和是:" + rs2);
System.out.println("-----------------------------------");
judge(10);
judge(7);
}
public static void judge(int number){
if(number % 2 == 0){
System.out.println(number + "是一个偶数!");
}else {
System.out.println(number + "是一个奇数!");
}
}
public static int add(int n){
int sum = 0;
for (int i = 1; i <= n; i++) {
// i = 1 2 3 ... n
sum += i;
}
return sum;
}
}
方法重载
重载识别与应用。
MethodOverLoadDemo1.java
package com.zwnsyw.overload;
public class MethodOverLoadDemo1 {
public static void main(String[] args) {
// 目标:认识方法重载,并掌握其应用场景。
test();
test(100);
}
public static void test(){
System.out.println("===test1===");
}
public static void test(int a){
System.out.println("===test2===" + a);
}
void test(double a){
}
void test(double a, int b){
}
void test(int b, double a){
}
int test(int a, int b){
return a + b;
}
}
MethodTest2.java
package com.zwnsyw.overload;
public class MethodTest2 {
public static void main(String[] args) {
// 目标:掌握方法重载的应用场景。
fire();
fire("岛国2");
fire("米国", 999);
}
public static void fire(){
fire("岛国");
}
public static void fire(String country){
fire(country, 1);
}
public static void fire(String country, int number){
System.out.println("发射了" + number + "枚武器给" + country);
}
}
参数传递机制
值传递的核心证据链。
MethodDemo1.java
package com.zwnsyw.parameter;
public class MethodDemo1 {
public static void main(String[] args) {
// 目标:理解方法的参数传递机制:值传递。
int a = 10;
change(a); // change(10);
System.out.println("main:" + a); // 10
}
public static void change(int a){
System.out.println("change1:" + a); // 10
a = 20;
System.out.println("change2:" + a); // 20
}
}
MethodDemo2.java
package com.zwnsyw.parameter;
public class MethodDemo2 {
public static void main(String[] args) {
// 目标:理解引用类型的参数传递机制:值传递的。
int[] arrs = new int[]{10, 20, 30};
change(arrs);
System.out.println("main:" + arrs[1]);
}
public static void change(int[] arrs){
System.out.println("方法内1:" + arrs[1]);
arrs[1] = 222;
System.out.println("方法内2:" + arrs[1]);
}
}
MethodTest3.java
package com.zwnsyw.parameter;
public class MethodTest3 {
public static void main(String[] args) {
// 目标:完成打印int类型的数组内容。
int[] arr = {10, 30, 50, 70};
printArray(arr);
int[] arr2 = null;
printArray(arr2);
int[] arr3 = {};
printArray(arr3);
}
public static void printArray(int[] arr){
if(arr == null){
System.out.println(arr); // null
return; // 跳出当前方法
}
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] + ", ");
// }
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
System.out.println("]");
}
}
MethodTest4.java
package com.zwnsyw.parameter;
public class MethodTest4 {
public static void main(String[] args) {
// 目标:完成判断两个int类型的数组是否一样。
int[] arr1 = {10, 20, 30};
int[] arr2 = {10, 20, 30};
System.out.println(equals(arr1, arr2));
}
public static boolean equals(int[] arr1, int[] arr2){
// 1、判断arr1和arr2是否都是null.
if(arr1 == null && arr2 == null){
return true; // 相等的
}
// 2、判断arr1是null,或者arr2是null.
if(arr1 == null || arr2 == null) {
return false; // 不相等
}
// 3、判断2个数组的长度是否一样,如果长度不一样,直接返回false.
if(arr1.length != arr2.length){
return false; // 不相等
}
// 4、两个数组的长度是一样的,接着比较它们的内容是否一样。
// arr1 = [10, 20, 30]
// arr2 = [10, 20, 30]
for (int i = 0; i < arr1.length; i++) {
// 判断当前位置2个数组的元素是否不一样,不一样直接返回false
if(arr1[i] != arr2[i]){
return false; // 不相等的
}
}
return true; // 两个数组是一样的。
}
}
return 关键字
return 的两种用法。
ReturnDemo1.java
package com.zwnsyw.returndemo;
public class ReturnDemo1 {
public static void main(String[] args) {
// 目标:掌握return单独使用:return; 在无返回值方法中的作用:跳出并立即结束当前方法的执行。
System.out.println("程序开始。。。");
chu(10, 0);
System.out.println("程序结束。。。");
}
public static void chu(int a, int b){
if(b == 0){
System.out.println("您的数据有问题,不能除0~~");
return; // 跳出并结束当前方法的执行。
}
int c = a / b;
System.out.println("除法结果是:" + c);
}
}
💬 评论