Java 中的方法类型2025年7月28日 | 阅读 13 分钟 方法是一段代码块,或一组语句,或一组为执行特定任务或操作而分组的代码。它用于实现代码的重用性。我们编写一次方法,然后多次使用它。我们不需要一遍又一遍地编写代码。它还通过添加或删除代码块来提供代码的易于修改和可读性。只有在我们调用或调用方法时,它才会被执行。 阅读更多 Java 中的方法 Java 中的方法类型Java 方法主要分为以下两类
Java 方法还可以根据调用和功能进行分类。 按调用分类
按功能分类
预定义方法Java 类库中已经定义好的方法称为预定义方法。它也称为标准库方法或内置方法。我们可以在程序的任何地方直接调用这些方法来使用它们。 例如,String.length()、String.equals()、String.compareTo()、Math.sqrt()、Math.pow() 等都是预定义方法。 当我们在程序中调用任何预定义方法时,与相应方法相关的代码会在后台运行。 示例:预定义方法编译并运行输出 2 raised to the power of 5 is: 32.0 用户定义方法用户或程序员编写的方法称为用户定义方法。这些方法可以根据需要进行修改或定制。 如何调用或实例化用户定义方法? 在 Java 中,调用或实例化方法取决于该方法是静态的还是非静态的。 如果方法是静态的,我们可以直接使用类名或在同一类中调用它。请注意,我们需要创建一个对象来调用静态方法。 如果方法是非静态的,我们必须创建一个类的对象,然后使用它来调用方法。 注意:如果我们尝试从静态上下文调用非静态方法而没有对象,我们将收到编译时错误,因为非静态方法属于实例,而不是类本身。示例:用户定义方法编译并运行输出 Goodbye from a non-static method! Hello from the static method! 按调用分类实例方法在其定义所在类的类的方法称为实例方法。它是一个非静态方法。在调用或实例化实例方法之前,有必要创建其类的对象。它可以访问该对象的实例变量。它可以使用 this 关键字引用当前对象。 示例:实例方法编译并运行输出 This is an instance method. 实例方法有两种类型:
访问器(Getter)方法 访问器方法,也称为 getter 方法,允许我们检索对象私有实例变量的值。这些方法提供对对象状态的只读访问。 通过使用访问器方法,我们可以确保对象的状态不会被外部代码意外或恶意修改。它们很容易识别,因为方法前缀是单词get。它们返回私有字段的值并用于访问其值。 修改器(Setter)方法 修改器方法(也称为 setter 方法)允许我们修改对象私有实例变量的值。这些方法提供对对象状态的只写访问。 通过使用修改器方法,我们可以确保对象的状态仅通过受控接口进行修改。我们可以很容易地识别它,因为方法前缀是单词set。它不返回任何内容。它接受一个与其数据类型取决于字段的数据类型相同的参数。它用于设置私有字段的值。 阅读更多 Java 中的访问器和修改器 示例:访问器和修改器方法 Person.java Main.java 输出 Name: Peter Age: 26 注意:两个类必须在同一包中,并执行 Main 类以获得输出。静态方法具有 static 关键字的方法称为静态方法。换句话说,它是属于类而不是类实例的方法。我们通过在方法名前放置 static 关键字来创建静态方法。 静态方法的主要优点是我们可以在不创建对象的情况下调用它。它通过类名调用。它可以访问静态数据成员并更改其值。它用于创建实例方法。静态方法最好的例子是main() 方法。 阅读更多 Java 中的静态方法 示例:静态方法编译并运行输出 25.0 Celsius is equal to 77.0 Fahrenheit. 抽象方法抽象方法是声明时没有方法体的方法。它强制子类实现自己的实现。它总是声明在抽象类中,所以类必须是抽象的。Java 提供 abstract 关键字来定义抽象类和方法。 阅读更多 Java 中的抽象方法 语法 如果一个类包含抽象方法,那么这个类本身必须声明为抽象的。 示例:抽象方法编译并运行输出 The square of 5 is: 25 Final 方法声明为 final 的方法称为 final 方法。子类不能重写 final 方法。 示例:Final 方法编译并运行输出 running 注意:如果我们从 Main 类中定义的 run() 方法中删除注释,然后尝试编译程序,则会收到编译时错误,因为 final 方法不能被重写。重载 Final 方法 方法重载取决于参数列表及其类型,而不是返回类型或其他修饰符。在同一类中为 final 方法提供不同的一组参数仍然是有效的。例如,考虑以下代码片段。 在上面的代码中,Main 类有一个名为 display() 的 final 方法,它被重载为第二个版本,该版本接受一个额外的 int 参数。这表明 final 方法可以重载,只要方法签名不同。 注意:Java 允许重载 final 方法,但不允许重写。Synchronized 方法synchronized 关键字可以与方法和块一起使用。当一个方法或块被声明为 synchronized 时,会在指定对象上获取一个锁,并且其他线程在锁被释放之前无法访问 synchronized 代码。 当我们需要确保一次只有一个线程可以访问整个方法时,就会使用 synchronized 方法。当方法修改共享资源(如类变量或数据结构)时,它非常有用。 语法 示例:Synchronized 方法编译并运行输出 Counter: 2000 Native 方法在 Java 中,native 方法是其实现是用 Java 以外的语言(通常是C 或 C++)编写的,并通过Java Native Interface (JNI) 在 JVM 外部执行的方法。这些方法通常用于与硬件交互、操作系统级功能或提高特定任务的性能。我们可以通过使用native 关键字来定义 native 方法。native 关键字只能应用于方法。 注意:Native 方法在 Java 中没有方法体,它们以分号结尾。Java 提供了一种称为 Java Native Interface (JNI) 的机制,该机制允许在Java 虚拟机 (JVM) 上运行的 Java 代码与用其他语言编写的应用程序和库进行交互。 从 JVM 的角度来看,有两种类型的代码:Java 和native。Java Native Interface (JNI) 在两者之间建立了明确定义的、平台无关的接口。 编译 Native 方法
示例:Native 方法 在 C 文件中实现 native 方法。 Main.c 输出 36 请注意,只有在我们用另一种低级语言实现其 native 方法时,程序才会运行。在我们的例子中,我们在C 语言中定义了 native 方法的实现。 注意:应避免使用 native 关键字,因为它可能违背 Java 的“一次编写,随处运行”的理念。它通常仅在必要时少量使用。按功能分类构造方法严格来说,构造函数不是方法,但从结构上看是。因为它们是 Java 中不同的结构。
构造函数是一个代码块,就像方法一样。但它是在创建类的实例时调用的。在调用构造函数时,对象内存会在内存中分配。它是一种特殊的类型的方法,用于初始化对象。 每次我们使用 new 关键字创建对象时,它都会调用一个默认构造函数。假设类中没有可用的构造函数;在这种情况下,Java 编译器默认提供一个默认构造函数。 阅读更多 Java 中的构造函数 示例:构造方法编译并运行输出 Bike class 递归方法递归方法会重复调用自身。它通过将问题分解为更小的子问题来解决问题。它是一个强大的概念,尤其适用于具有自然层次结构或重复结构的问题,例如阶乘或斐波那契数列。 递归方法有两个关键部分:基本情况和递归情况。 示例:递归方法编译并运行输出 Factorial of 5 is: 120 重载方法在 Java 中,重载方法是指同一个类中有多个方法共享相同的名称,但在其参数列表上有所不同,包括参数的数量、类型或顺序。这被称为方法重载,它是编译时多态性的一种形式。 阅读更多 Java 中的方法重载 示例:方法重载编译并运行输出 22 33 重写方法重写方法是子类中用于重新定义从其超类继承的方法的方法。它是运行时多态性的一种形式,允许对象根据其实际类型表现出不同的行为,即使以泛型方式引用。 阅读更多 Java 中的方法重写 示例:方法重写编译并运行输出 Dog barks Cat meows 工厂方法工厂方法是一种创建型设计模式。它提供了一种灵活的方式来实例化对象,而无需指定它们的精确类。不是直接使用 new,而是将对象创建委托给一个方法(通常在超类或接口中),子类会重写该方法以生成特定类型。 示例:工厂方法编译并运行输出 Sending an Email Notification Java 方法选择题1. Java 中的方法重载是什么?
答案:C 解释:在 Java 中,重载方法是指同一个类中有多个方法共享相同的名称,但在其参数列表上有所不同,包括参数的数量、类型或顺序。 2. 哪个关键字可以防止方法被重写?
答案: B 解释: final 方法不能被子类重写,从而确保行为的一致性。 3. 静态方法尝试访问实例变量时会发生什么?
答案: B 解释:静态方法属于类,不能直接访问实例变量。 4. 创建对象时自动调用哪个方法?
答案:C 解释:构造函数用于初始化对象,并在实例化过程中被调用。 5. 以下哪种是从 main() 调用非静态方法的有效方式?
答案:C 解释:非静态方法需要一个对象才能被调用。 |
在 Java 中,extends 关键字用于继承父类的所有方法和属性,而 implements 关键字用于实现接口中定义的方法。extends 关键字 extends 关键字用于当一个类继承自……
阅读 4 分钟
字符串是字符序列的表示。在 Java 编程中,开发人员最常使用的类之一是字符串。然而,Java 创建了 StringBuilder 和 StringBuffer 工具类,以便更容易地操作字符串,因为字符串是不可变的。字符串 字符串是... ...
阅读 3 分钟
在 Java 中,double 是一种数据类型。它用于以高精度存储小数。它是一种 64 位 IEEE 754 浮点数据类型,这意味着它可以准确地处理大值和分数。我们经常在科学计算、金融应用和物理学中看到它...
阅读 3 分钟
计算序列 2、22、222 等的和涉及理解数字模式,其中数字会重复。可以通过 Java 程序迭代地构建序列并对其值进行求和来实现此任务。这是一个很好的练习,可以练习循环和数学...
7 分钟阅读
在一个系统中,有两个单链表。由于某种错误,其中一个链表的最后一个节点与第二个链表连接,从而创建了一个 Y 形链表。我们的任务是找出给定...
阅读 13 分钟
问题陈述:给定一个正整数 k。我们必须找到一个最小的正整数 n 的长度,该整数可被 k 整除,并且 n 中的每个数字都只包含数字 1。整数 n 应通过重复数字 1 来构建……
18 分钟阅读
在本节中,我们将涵盖随时可能发生的 try-catch-finally 序列,这些序列会在出现异常时发生,以及控制流在提供的每种情况下的工作方式。在异常处理过程中,我们将遍历许多示例以……
阅读 6 分钟
JVM 和 JIT 编译器都在 Java 程序的执行中扮演着独特的角色。虽然 JVM 为 Java 字节码执行提供了运行时环境,但 JIT 编译器可以提高程序执行性能。通过将频繁使用的字节码转换为本地机器代码。Java 虚拟机 (JVM) JVM 是...
5 分钟阅读
Java 中的自动提升是一种特性,当较小的数据类型用于表达式或方法调用时,它会自动将它们转换为较大的数据类型。它用于确保表达式中的操作数或方法中的参数具有...
阅读 4 分钟
在软件开发领域,多任务处理对于提高应用程序的性能和响应能力至关重要。它允许程序并发执行多个任务,从而有效地利用系统资源。Java 作为一种流行的编程语言,通过…提供了强大的多任务处理机制。
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India