【Java SE】基础知识回顾——【1.方法的定义、调用】

一.何为方法

在Java编程语言中,方法(Method)是一组执行特定任务的代码块
它定义在类或对象中,并且可以被其他部分的代码调用。
方法可以被多次调用,使得代码可以被重复使用,提高了代码的可维护性和可读性。

二.方法的定义

方法的基本语法如下:

返回类型 方法名(参数类型 参数名) {
    // 方法体
    // 可以包含一系列的语句和逻辑来完成特定任务
    // 可以使用参数进行计算
    // 可以使用return语句返回值(如果方法的返回类型不是void)
}

  • 返回类型(Return Type):指定方法执行完毕后返回的数据类型。如果方法不返回任何值,返回类型应该用关键字 void 表示。
  • 方法名(Method Name):方法的标识符,用来在程序中调用方法。规则同变量,第一个字母小写,第二个单词开始字母大写
  • 参数类型(Parameter Type):指定方法接受的输入参数的数据类型。如果方法不需要参数,圆括号仍然是必需的,但是留空即可。
  • 参数名(Parameter Name):指定方法接受的输入参数的名称,可以在方法内部使用这些参数。
  • 方法体(Method Body):包含在方法内部的代码块,实现方法的具体功能。
  • return语句:一是停止方法,二是用于返回方法的返回值(仅适用于非void类型的方法)。

以下是一个简单的方法示例

public class MyClass {
    // 方法定义
    public int add(int a, int b) {
        int sum = a + b;
        return sum; // 返回a和b的和
    }

    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        int result = myClass.add(2, 3); // 调用add方法,并将返回值赋给result变量
        System.out.println("Sum: " + result); // 输出:Sum: 5
    }
}

三.方法的调用

1.实例方法(非静态方法)

实例方法就是没有被static修饰的方法,又称非静态方法。

实例方法是在类的实例上调用的方法。要调用实例方法,你首先需要创建类的一个实例,然后使用该实例来调用方法。实例方法的调用方式如下:
对象名.方法()

ClassName objectName = new ClassName();
objectName.methodName(arguments);
public class MyClass {
    public int calculateSum(int a, int b) {
        return a + b;
    }
    public static void main(String[] args) {
        MyClass myObject = new MyClass(); // 创建类的实例
        int result = myObject.calculateSum(2, 3); // 实例方法调用
        System.out.println("Sum: " + result);
    }
}

这里介绍一下实例和对象两种说法
在面向对象编程(Object-Oriented Programming,简称OOP)中,对象"是类的一个具体实例

对象:对象是内存中一个实际存在的实体,它是一个类的具体实例。对象具有状态(属性)和行为(方法)。当你创建一个类的实例时,就创建了一个对象。对象是类的具体化,它可以被操作、传递和使用。

实例:实例是一个通用的术语,用来描述某个类的具体对象。在OOP中,当你使用new关键字创建一个类的对象时,你创建了这个类的一个实例。因此,每个对象都是该类的一个实例。

换句话说,对象是一个特定类的具体实体,而实例是描述这个对象的抽象概念在实际编程中,这两个术语通常可以互换使用,因为它们表示相同的概念,即类的具体实例。

2. 构造方法

构造方法是一种特殊类型的实例方法。它们用于创建对象时进行初始化。构造方法具有以下特点:
[方法名与类名相同]:构造方法的名称必须与所在类的名称完全相同。
[没有返回类型]:构造方法没有返回类型,包括void。它们不能返回任何值,甚至不包含return语句。
[用于对象的初始化]:构造方法被调用时,用于初始化对象的状态,包括设置对象的属性、分配内存等操作。

构造方法有无参构造(隐式构造有参构造(显式构造)两种

  • 每个类可以有一个或多个构造方法。
  • 如果在类中没有显式定义构造方法,Java会提供一个默认的无参数构造方法(即使你没有写出来)。
  • 如果你在类中定义了一个或多个构造方法,Java将不再提供默认的无参数构造方法。

构造方法的调用
当你使用new关键字创建对象时,Java会根据传递的参数选择相应的构造方法。如果你在类中定义了多个构造方法,Java会根据传递的参数数量和类型来匹配合适的构造方法。如果没有定义构造方法,Java会提供一个默认的无参数构造方法

3.静态方法(类方法)

静态方法是使static 关键字修饰的方法,它属于类而不是类的实例。静态方法可以直接通过类名来调用,无需创建类的实例。静态方法的调用方式如下:类名.方法()

ClassName.methodName(arguments);
public class MyClass {
    public static void printMessage(String message) {
        System.out.println(message);
    }
    public static void main(String[] args) {
        MyClass.printMessage("Hello, World!"); // 静态方法调用
    }
}

同类中静态方法调用静态方法

4.静态方法与非静态方法的区别

在Java中,静态方法(Static Methods)和实例方法(Instance Methods)有几个关键区别:

1.调用方式:
静态方法:可以通过类名直接调用,不需要创建类的实例。
例如:ClassName.staticMethod()
实例方法:需要通过类的实例(对象)调用
例如:objectName.instanceMethod()

2.关联对象
静态方法不依赖于类的实例,它们与类本身相关联,而不是类的特定实例。静态方法中无法访问实例变量,因为它们没有与特定对象相关联。
实例方法依赖于类的实例,可以访问和修改实例变量,可以通过关联的对象访问和操作对象的状态。

3.this和super关键字
静态方法无法使用this关键字,因为静态方法不依赖于特定的实例。也无法使用super关键字
实例方法可以使用this关键字引用当前对象,也可以使用super关键字引用父类的实例变量和方法。

4.内存分配
静态方法:静态方法在类加载时就会被加载到内存中,属于类的一部分,只有一个副本,被所有类的实例共享
实例方法:实例方法在每个类的实例(对象)中被创建,每个对象都有一份独立的实例方法副本。

5.访问权限:
静态方法可以访问类的静态成员(包括静态变量和静态方法),但不能直接访问实例成员。
实例方法可以访问类的静态和实例成员

四、方法调用总结

1.同类调用

同类调用静态方法,直接调用
同类调用非静态方法,创建实例调用

2.不同类调用

不同类调用静态方法,导入类包,通过类名调用
不同类调用非静态方法,导入类包,再创建实例化调用对象

3.继承中调用

  • 子类可以调用父类的方法,可以使用super关键字调用父类的方法。(通常情况下,父类不能调用子类)
public class Parent {
    void method() {
        // ...
    }
}
public class Child extends Parent {
    void childMethod() {
        super.method(); // 调用父类的方法
        // ...
    }
}

4.接口中方法调用

  • 类实现接口时,需要实现接口中的方法。通过实现类的对象,可以调用接口中的方法
interface MyInterface {
    void interfaceMethod();
}

public class MyClass implements MyInterface {
    public void interfaceMethod() {
        // 实现接口中的方法
        // ...
    }
    void myMethod() {
        // 可以在类中的其他方法中调用接口中的方法
        interfaceMethod();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值