java 方法定义与调用、以及调试技巧

一、方法定义与调用

1.1 方法基础

public class MethodDemo {
    // 无返回值方法
    public static void sayHello() {
        System.out.println("你好,世界!");
    }

    // 带参数和返回值的方法
    public static int add(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        sayHello();                          // 直接调用
        int result = add(3, 5);              // 接收返回值
        System.out.println("相加结果:" + result); // 输出8
    }
}

关键点

  • public static:方法修饰符(后续面向对象讲解)
  • void:表示无返回值
  • 方法签名:方法名 + 参数列表(add(int, int))

1.2 方法重载

public class OverloadDemo {
    // 方法重载:同名方法,参数不同
    public static void print(int num) {
        System.out.println("整数:" + num);
    }

    public static void print(String text) {
        System.out.println("字符串:" + text);
    }

    public static void main(String[] args) {
        print(100);       // 调用第一个print
        print("Java");     // 调用第二个print
    }
}

二、数组操作

2.1 数组基础

public class ArrayDemo {
    public static void main(String[] args) {
        // 声明并初始化数组
        int[] scores = {85, 92, 78, 90};
        String[] names = new String[3];  // 长度为3的空数组
        
        // 数组赋值与访问
        names[0] = "张三";
        names[1] = "李四";
        System.out.println(scores[1]);   // 输出92
        System.out.println(names[2]);    // 输出null(未赋值)

        // 遍历数组
        for (int i = 0; i < scores.length; i++) {
            System.out.println("成绩" + (i+1) + ": " + scores[i]);
        }
    }
}

2.2 多维数组

public class MultiArray {
    public static void main(String[] args) {
        // 二维数组:3行2列
        int[][] matrix = {
            {1, 2},
            {3, 4},
            {5, 6}
        };
        
        // 嵌套循环遍历
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
}

输出结果

1 2 
3 4 
5 6 

三、基础调试技巧

3.1 IntelliJ IDEA调试

  1. 设置断点:在代码行号左侧点击出现红点
public static void main(String[] args) { 
int x = 5; // 断点设置处 
x = x * 3; 
System.out.println(x); 
}

2.启动调试

  • 右键选择Debug 'ClassName.main()'
  • 使用工具栏按钮控制执行:F8:单步执行(Step Over)F7:进入方法(Step Into)F9:恢复程序(Resume)

3.观察变量

  • 在Variables窗口查看当前变量值
  • 鼠标悬停变量查看即时值

3.2 Eclipse调试

  1. 调试模式启动:点击工具栏甲虫图标
  2. 表达式评估:在Expressions窗口输入变量名
  3. 修改变量值:右键变量选择Change Value

四、控制台输出

4.1 基础输出

public class OutputDemo {
    public static void main(String[] args) {
        // 标准输出
        System.out.println("Hello World");  // 换行输出
        System.out.print("不换行");          // 不换行
        
        // 格式化输出
        String name = "王五";
        int age = 25;
        System.out.printf("姓名:%s,年龄:%d", name, age);
    }
}

输出结果

Hello World
不换行姓名:王五,年龄:25

4.2 调试输出技巧

public class DebugOutput {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        
        // 调试输出(完成后需删除)
        System.out.println("[DEBUG] a=" + a + ", b=" + b);
        
        int sum = a + b;
        System.out.println("结果:" + sum);
    }
}

五、综合练习

数组处理方法

public class ArrayMethod {
    // 计算数组平均值
    public static double getAverage(int[] arr) {
        int sum = 0;
        for (int num : arr) {
            sum += num;
        }
        return (double)sum / arr.length;
    }

    public static void main(String[] args) {
        int[] data = {80, 75, 90, 85};
        double avg = getAverage(data);
        System.out.printf("平均分:%.2f", avg); // 输出82.50
    }
}

学习建议

1.实践步骤

  • 在IDE中手动输入所有示例代码
  • 尝试修改方法参数观察结果变化
  • 在调试模式下观察数组内存地址

2.常见错误处理

  • ArrayIndexOutOfBoundsException:检查数组长度
  • NullPointerException:确保数组已初始化
  • 方法返回值丢失:检查是否用变量接收返回值

3.扩展练习

  • 编写方法实现数组反转
  • 用调试模式跟踪冒泡排序过程
  • 创建方法输出二维数组对角线元素

相关文章

如何使用Java的反射机制以及调用构造方法?

关于如何使用Java的反射机制,兆隆IT云学院的java高级实用技术的课本中是这样的描述的:1、获取想要操作类的java.lang.Class对象。每个类被加载后,系统就会为该类生成一个对应的Clas...

字节架构师:来说说Java异步调用的几种方式你都搞懂了吗?

日常开发中,会经常遇到说,前台调服务,然后触发一个比较耗时的异步服务,且不用等异步任务的处理结果就对原服务进行返回。这里就涉及的Java异步调用的一个知识。下面本文尝试将Java异步调用的多种方式进行...

java 服务之间调用(rpc)

RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:应用级的服务框架: Dubbo、Google gRPC、Spring Boot/Spring Cloud。远程通信协议:RMI、S...

Java中实现接口的三种方式您造吗?

本文介绍了Java中实现接口的三种方式:常规实现方式、匿名内部类和 Lambda表达式实现方式。希望已经了解的同学可以重新温习一下,不了解的同学则从中受益!Java中接口最常规的实现方式同学们都会知道...

java实现调用http请求的几种常见方式

欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。一、概述在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的...