Java方法
定义:java方法
方法包含一个方法头和一个方法体:
- 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- 方法体:方法体包含具体的语句,定义该方法的功能。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
接口(interface)
接口的作用
``
定义:接口
接口(Interface)是用来定义行为契约的一种机制,它包含了方法签名的集合,但不包含方法的具体实现
。
通过interface关键字来定义一个接口,接口中只允许存在抽象方法(默认方法除外,Java 8 开始支持)、静态方法和常量
。
类可以通过 implements 关键字来实现接口,这意味着该类必须提供接口中所有声明的抽象方法的具体实现。
下面分别展示下对应的接口方法定义:
抽象方法
- 在接口中声明的所有方法都默认是抽象的(即使没有使用 abstract 关键字),它们只有方法头(包括访问修饰符、返回类型、方法名以及参数列表),没有方法体。
public interface myInterface{
ReturnType methodName(ParamType param1, ParamType param2);//这里是默认abstract
}
默认方法(Java 8及以上版本)
- 自Java 8开始,接口也可以包含有具体实现的方法,即所谓的默认方法,通过使用== default== 关键字:
public interface myinterface{
default void someDefaultMethod() {
// 这里提供了方法的具体实现
}
}
静态方法(Java 8及以上版本)
- 同样从Java 8开始,接口还能声明静态方法
public interface MyInterface {
static void staticMethod() {
// 静态方法的实现
}
}
常量成员
- 接口中的变量默认都是 public static final 的,即接口常量,声明时无需指定这些关键字:
public interface MyInterface {
String CONSTANT_NAME = "SomeValue";
}
`实现接口的类必须提供接口中所有抽象方法的实现,除非该类本身也是抽象的。若不提供实现,则该类也必须声明为抽象类。
当类实现接口时,使用 implements 关键字:`
public class MyClass implements MyInterface {
@Override
public void methodName(ParamType param1, ParamType param2) {
// 实现接口中methodName方法
}
}
但是问题来了:实现接口的类必须提供接口中所有抽象方法的实现 ?所以接口有多少个方法,那对应的实现类就会有多少方法吗?
是的,当你创建一个类去实现一个接口时,该类必须实现接口中定义的所有抽象方法。也就是说,类中需要提供接口中每个方法的具体实现。如果不这样做,那么该类就必须被声明为抽象类(使用 abstract 关键字)。
关于.java文件
在Java编程中,一个Java源文件(.java文件)中确实可以有且仅有一个公开(public)的类,且该类的名称必须与文件名完全一致(包括大小写和包名)。然而,同一个.java文件中还可以包含任意数量的非公开(non-public)类、内部类(包括静态内部类和非静态内部类)、枚举、接口以及注解类型等。
1.如果有公开类,公开类必须单独存放在以其类名命名的.java文件中。
2.单个.java文件中可以包含任意数量的非公开类、内部类、接口、枚举以及注解等。