Java 成员方法的定义

方法的定义:

  • 方法是类或对象的行为特征的抽象。
  • Java中的方法不能独立存在,所有的方法必须定义在类中。
  • 使用 “类名.方法” 或 “对象.方法” 的形式调用。
  • 语法格式:

    权限修饰符 返回值类型 方法名(参数类型 参数名) {

      // 方法体

      // 返回值

    }

 

方法分类:

  • 无参数无返回值
  • 有参数无返回值
  • 无参数有返回值
  • 有参数有返回值
复制代码
public class Method {
    
    public void aMethod() {
        System.out.println("无参数无返回值的方法");
    }
    
    public void bMethod(int b) {
        System.out.println("有参数无返回值的方法");
    }
    
    public int cMethod() {
        System.out.println("无参数有返回值的方法");
        return 10;
    }
    
    public int dMethod(int d) {
        System.out.println("有参数有返回值的方法");
        return d;
    }

    public static void main(String[] args) {
        int ret;
     // 创建Method类的对象 Method md
= new Method();
     // 通过对象.方法调用 md.aMethod(); md.bMethod(
10); ret = md.cMethod(); ret = md.dMethod(10); System.out.println(ret); } }
复制代码

 

方法的参数:

方法可以没有参数,或者有多个参数,参数类型可以是任意类型

方法参数也是局部变量

参数为引用数据类型时:

  当对象实例作为参数传递给方法时,传递的是对象的引用,为地址传递,接受参数的方法可以改变参数的值。

参数为简单数据类型时:

  传递的是参数的副本,为值传递,接受参数的方法中不会改变参数的值。

复制代码
public class MethodParam {
    
    /** 
     * 方法的参数为基本数据类型时,传递的是值的副本(值拷贝)
     * 方法中不会改变元参数的值
     */
    public void swap(int a, int b) {//a, b为形参
        int tmp;
        tmp = a;
        a = b;
        b = tmp;
    }
    
    int x = 100, y = 200;
    
    /**
     * 方法的参数为引用数据类型时,传递的对象的引用(传地址)
     * 方法中可以改变参数的值
     */
    public void swap2(MethodParam mp) {
        int tmp = mp.x;
        mp.x = mp.y;
        mp.y = tmp;
    }

    public static void main(String[] args) {
        MethodParam mp = new MethodParam();
        
        int m = 10, n = 20;
        System.out.println("交换前:a = "+m+",b = "+n);
        mp.swap(m, n);// m,n为实参
        System.out.println("交换后:a = "+m+",b = "+n);
        
        System.out.println("交换前:x = "+mp.x+",y = "+mp.y);
        mp.swap2(mp);
        System.out.println("交换后:x = "+mp.x+",y = "+mp.y);
    }

}
复制代码
posted @   LeeAaron  阅读(21190)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示