day4 方法

文章介绍了Java中的方法,包括方法的概述、定义、调用和重载。方法是实现代码复用的关键,可以带有参数和返回值。方法的访问修饰符包括public、private、protected和static等。静态方法可通过类名直接调用,而非静态方法需通过对象调用。方法的重载允许在同一类中有相同名字但参数不同的方法存在,提高了编程灵活性。
摘要由CSDN通过智能技术生成

目录

一、方法的概述

二、方法的定义

三、方法的调用

四、方法的重载


一、方法的概述

就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。当我们需要这个功能时,就可以去调用。

这样即实现了代码的复用性,也解决了代码冗余的现象。

Java中的方法可以带有参数,可以返回值,也可以不带参数和返回值。方法可以在类中或在类之外定义,但必须在类中声明。

二、方法的定义

修饰符 返回值类型 方法名 (参数列表){
    代码。。。
    return 返回值;
}

修饰符:

public:表示该方法可以被任意的类访问。
protected:表示该方法只能被同一个包内的类访问,或者是该类的子类。
private:表示该方法只能被同一个类内部的方法调用,不能被其他类调用。
default(默认):没有显式指定修饰符,即不写任何修饰符。表示该方法只能被同一个包内的类访问。
final:表示该方法不能被重写(Override)。
static:表示该方法为静态方法,可以通过类名直接调用,无需实例化对象。

我们开发过程中常用的是public、praivate、static三种。

static定义的方法称为静态方法。在Java中,静态方法是一种特殊类型的方法,它可以通过类名直接调用,而无需先创建该类的实例(new)。静态方法在Java中使用频率很高,因为它们提供了一种方便的方式来访问类级别的属性和方法,同时避免了创建多个实例的开销。

静态方法的定义与普通方法类似,但需要使用static关键字来修饰方法。

静态方法和非静态方法有什么区别呢?

静态方法是属于的方法,而非静态方法是属于对象的方法。在类加载时,静态方法就会被加载到内存中,而非静态方法需要在创建对象后才能调用。

静态方法可以通过类名直接调用,不需要创建对象,而非静态方法必须通过对象调用。静态方法中不能使用this关键字,因为它没有实例对象。而非静态方法可以使用this关键字来引用实例对象。

静态方法可以访问静态成员,包括静态变量和静态方法,但不可以访问非静态成员。而非静态方法可以访问非静态成员和静态成员。

静态方法通常用于实现一些工具方法,如Math类中的max()方法,而非静态方法用于实现对象的行为,如在Person类中定义一个run()方法。

总之,静态方法和非静态方法之间的区别在于它们的作用范围、调用方式和访问能力。需要根据具体需求选择使用哪种方法。


返回值类型:

空类型(void):表示没有返回值。

基本数据类型:例如int、float、double等。

引用数据类型:例如字符串、数组、自定义对象等。

枚举类型、Optional类等

方法名:

方法的命名应该以小写字母开头,采用驼峰命名法。方法名应该清晰明了,能够描述出它所执行的功能。

注意:

方法定义的先后顺序无所谓。
方法的定义不能产生嵌套包含关系。
方法定义好了之后,不会执行,如果需要执行,一定要进行方法的调用

以下是一个简单的Java方法的例子:

public class MyClass {
  public static void main(String[] args) {
    System.out.println("Hello World!");
    myMethod();//调用myMethod方法
  }
 
  static void myMethod() {
    System.out.println("This is my method.");
  }
}


在这个例子中,我们定义了一个名为 myMethod() 的方法。它不带参数,也没有返回值。我们在main方法中调用了它,输出了相应的结果。

参数

可以没有,也可以有多个,在调用时需要与类型一一对应。

三、方法的调用

在 Java 中,方法可以通过以下三种方式进行调用:

  1. 对象调用:先创建一个类的对象,然后通过该对象来调用方法。这种方式适用于非静态方法,即实例方法。例如:
MyClass obj = new MyClass(); // 创建 MyClass 类的对象
obj.myMethod(); // 调用该对象的 myMethod 方法
  1. 类调用:直接通过类名来调用静态方法或静态成员变量。这种方式适用于静态方法或静态成员变量。例如:
MyClass.myStaticMethod(); // 调用 MyClass 类的静态方法 myStaticMethod
System.out.println(MyClass.myStaticVariable); // 直接访问 MyClass 类的静态成员变量 myStaticVariable
  1. 类型转换调用:将一个对象转换为一个类或接口的类型,并调用该类型中声明的方法。这种方式也适用于非静态方法,即实例方法。例如:
MyInterface obj = new MyClass(); // 将 MyClass 对象转换为 MyInterface 类型
obj.myMethod(); // 调用 MyInterface 接口中的 myMethod 方法

需要注意的是,方法的调用方式受到访问修饰符的限制,如果方法的访问修饰符为 private,则只能在该类中被访问调用。除此之外,方法的调用方式不影响方法的实现和功能。

四、方法的重载

在 Java 中,方法重载指的是在同一个类中定义了两个或多个方法,它们具有相同的名称但参数数量或类型不同的情况。方法重载的实现方式:方法名相同,但参数个数、参数类型或参数顺序不同。例如:

public int add(int a, int b) {
    return a + b;
}

public double add(double a, double b) {
    return a + b;
}

public String add(String a, String b) {
    return a + b;
}

上面的代码中,三个 add 方法的方法名都相同,但是它们的参数个数、类型或顺序不同。第一个 add 方法接收两个 int 类型的参数,并返回它们的和;第二个 add 方法接收两个 double 类型的参数,并返回它们的和;第三个 add 方法接收两个 String 类型的参数,并将它们拼接在一起返回。这三个方法都是 add 方法,但它们的参数和返回值不同,因此可以被视为不同的方法。

当我们调用 add 方法时,编译器会根据我们传递的参数类型和数量来决定调用哪个 add 方法。例如:

int sum1 = add(2, 3); // 调用第一个 add 方法
double sum2 = add(2.5, 3.5); // 调用第二个 add 方法
String sum3 = add("Hello", " World"); // 调用第三个 add 方法

这种方法重载的设计可以提高编程的灵活性,使得我们能够更好地调用方法。同时需要注意的是,方法重载是静态绑定的,也就是说,在编译时期就已经确定了具体要调用的方法。


ps: 这节写的很烂,介绍的很笼统,其中有许多知识要在后面的章节学完后才能更好的理解。这里建议大家将目前的方法比作c语言中的函数,与函数的概念和使用方法大致相同。等后面引入对象的概念后就能够更好的理解方法了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值