当前位置: 首页 > 知识库问答 >
问题:

Java中的方法修饰符

丁茂
2023-03-14

我正在编写代码以匹配给定字符串或行的方法声明。这就是我的问题所在。当试图匹配修饰符时,当声明

public static 

工作。我一直都是这样

static public

这就是我的问题。两者有什么区别,所有修饰符都一样吗?我相信这是有原因的,松散的顺序不是设计决定。

哦,如果有人知道匹配给定字符串的方法的最佳方法,请告诉我。谢谢。现在我正在使用正则表达式。

共有3个答案

蒋乐意
2023-03-14

简而言之,由于执行这样的规则没有实际意义,所以没有这样的规则。

解析器中,允许多个可选关键字之间的任意顺序也比要求特定顺序更容易。

柴寂离
2023-03-14

两者都是相同的,但通常我们可以先写访问修饰符,然后再写其他修饰符。

访问修饰符:

  • 公众
  • 私人
  • 受保护的
  • 默认(包访问)

类成员的其他修饰符:

  • 静态
  • 期末考试
  • 摘要
  • 同步
  • 本地人
  • 暂时的
  • 易变的

方法语法

<method modifiers> <return type> <method name> (<formal parameter list>) <throws clause> {
//method body
  <local variable declaration> 
  <inner class declaration>
  <statements>
}
张兴旺
2023-03-14

是的,这是允许的,它不是松散的顺序设计,而是定义良好的语法。有关详细信息,您可以查看Java语言语法文档。

例如类声明-

ClassOrInterfaceDeclaration: 
    {Modifier} (ClassDeclaration | InterfaceDeclaration)

哪里

修饰语:

Annotation
public
protected
private
static 
abstract
final
native
synchronized
transient
volatile
strictfp

{x} denotes zero or more occurrences of x. 
 类似资料:
  • 问题内容: 有没有理由可以更改覆盖方法的访问修饰符?例如, 然后将package-private访问修饰符更改为, 我只是出于好奇而问这个问题。 问题答案: Java不允许您对access修饰符进行 更严格的限制 ,因为这会违反以下规则:子类实例应该可以代替超类实例使用。但是当涉及到 减少 访问限制时……好吧,也许超类是由另一个人编写的,他们没有想到您要使用其类的方式。 人们编写的程序以及编程时所

  • 本文向大家介绍Java接口中的修饰符,包括了Java接口中的修饰符的使用技巧和注意事项,需要的朋友参考一下 示例 《 Oracle Java样式指南》指出: 当修饰符是隐式的时,不应将它们写出来。 (有关上下文和指向实际Oracle文档的链接,请参见Oracle Official Code Standard中的修饰符。) 此样式指南特别适用于界面。让我们考虑以下代码片段: 变数 所有接口变量都是具

  • 修饰类方法的关键字 通过在func关键字之前使用static关键字来定义一个类型方法. 类同样可以使用class关键字来定义一个类型方法, 区别在于class修饰的方法, 允许子类重写 e.g. static static func talk() -> Void { print("\(self) talk method") } class class Pe

  • 问题内容: 我发现自己对访问权限和非访问修饰符的顺序感到困惑。例如 我永远不知道正确的顺序是什么,有时我弄错了,因为有太多可能的组合。是否有明确的指南关于哪个应该先于另一个? 是否有任何描述要在代码中出现的格式和顺序?我正在尝试提供语法指南,但不确定它是否100%正确。这里是: 问题答案: 根据Java编程语言(简体)的官方 语法 : 因此,对于类和接口,修饰符必须 始终以任何顺序出现在关键字之前

  • 主要内容:final 修饰变量,final修饰方法,final修饰类,final 修饰符使用总结final 在 Java 中的意思是最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思。final 应用于类、方法和变量时意义是不同的,但本质是一样的,都表示不可改变,类似 C# 里的 sealed 关键字。 使用 final 关键字声明类、变量和方法需要注意以下几点: final 用在变量的前面表示变量的值不可以改变,此时该变量可以被称为常量。 final 用在方法的前面表示方法不可以

  • 我写的代码有一个错误消息。一切都应该是好的,因为这些例子都有相同的代码,但是不知何故我得到了一个错误。错误消息说: 期望令牌上 ")",; 语法错误-参数onOptionsItem选择的非法修饰符;只允许最终-期望令牌 "(",; 语法错误