标签: modifiers

Java中的final和static

我在一本书中读过这句话,但我不理解:

静态和最终的字段只有一个无法更改的存储空间.

有谁可以帮我解释一下?

java variables static final modifiers

25
推荐指数
2
解决办法
4万
查看次数

Keys.Shift和Keys.ShiftKey之间的区别

在我的应用程序中,我检测到按下某个键的时间,看看修饰符是Shift键还是Keys枚举器有Shift和ShiftKey.

事件似乎总是发送Keys.Shift,但有没有使用Keys.ShiftKey的情况?

(同样的问题适用于Keys.Control和Keys.ControlKey)

感谢您的任何意见.

.net c# key modifiers

24
推荐指数
2
解决办法
6585
查看次数

覆盖方法是否可以使用与基类中不同的访问说明符?

在抽象类中,哪个访问修饰符必须用于方法,因此子类可以决定它是否应该是公共的?是否可以"覆盖"Java中的修饰符?

public abstract class A {

    ??? void method();
}

public class B extends A {
    @Override
    public void method(){
        // TODO
    }
}

public class C extends B {
    @Override
    private void method(){
        // TODO
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道静态绑定会有问题,如果有人打电话:

// Will work
A foo = new B()
foo.method();

// Compiler ?
A foo = new C();
foo.method();
Run Code Online (Sandbox Code Playgroud)

但也许还有另一种方式.我怎么能做到这一点?

java abstract modifiers

21
推荐指数
3
解决办法
4417
查看次数

正则表达式修饰符'm'和's'之间的区别?

我经常忘了正则表达式修饰符ms与他们之间的分歧.什么是记住它们的好方法?

据我了解,他们是:

"m"是用于多线,以便^$ 将匹配字符串和字符串多次的结束的开始.(除以\n)

's'是这样的,即使是换行符,点也会匹配

通常,我只是使用

/some_pattern/ism
Run Code Online (Sandbox Code Playgroud)

但相应地使用它们可能更好(在我的情况下通常是"s").

你认为什么是记住它们的好方法,而不是忘记每次都是哪一个?

regex modifiers

20
推荐指数
2
解决办法
1万
查看次数

与c ++`override` /`final`说明符相反的是什么?

  • 在c ++ 11中,override说明符防止不覆盖预期的虚拟基本函数(因为签名不匹配).
  • final说明符在派生类中重写无意的功能保护.

=>是否有一个说明符(可能first或类似的东西no_override)可以防止覆盖未知的基本函数?

当虚拟函数被添加到基类中时,我想得到编译器错误,该基类具有与派生类中已有的虚函数相同的签名.


编辑4:为了使这个问题简单并且答案相关,这里又是

原始的伪代码

  • 摘要class B : Aprivate: virtual void fooHasBeenDone() = 0;
  • class C : B 器物 private: virtual void fooHasBeenDone() override { react(); }
  • 现在class A得到一个新的private: virtual void fooHasBeenDone();
  • 但新的A::foo可能与原始的不同B::foo.

和一个具体的例子

  • abstract class B : Avirtual void showPath() = 0;一个PainterPath
  • class C : B 器物 virtual void showPath() override …

c++ inheritance class-hierarchy modifiers c++11

8
推荐指数
1
解决办法
1395
查看次数

检测由单击摇摆生成的MouseEvent上的Shift修改器

我正在使用Java Swing在GUI应用程序中处理一些MouseEvent.

从现在开始我在mousePressed方法中分析鼠标事件,只是为了确定是否发生了左击或右击.

我的代码是:

public void mousePressed(MouseEvent me) {
    if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK){
     //left click
    }else if (me.getModifiers == InputEvent.BUTTON3_DOWN_MASK){
     //right click
     }
Run Code Online (Sandbox Code Playgroud)

现在我的应用程序变得越来越复杂了,我还需要检查鼠标左键单击时是否按下了Shift键.我想做这样的事情:

public void mousePressed(MouseEvent me) {
    if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK && me.isShiftDown()){
     //left click
    }
Run Code Online (Sandbox Code Playgroud)

现在这不起作用.特别是如果我在按住SHIFT的同时单击左按钮,则isShiftDown返回true(rigth.我期待的是),但现在似乎修改器也被更改并且与BUTTON1_DOWN_MASK的比较失败.

me.getModifiers == InputEvent.BUTTON1_DOWN_MASK //failed..modifiers are changed
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我该如何修复我的代码?

java swing mouseevent modifiers

7
推荐指数
1
解决办法
1万
查看次数

使用iomanip匹配printf格式

我有一些旧的C代码,我试图复制C++中的行为.它使用printf修饰符:"%06.02f".

我天真地认为这iomanip同样有能力,并做了:

cout << setfill('0') << setw(6) << setprecision(2)
Run Code Online (Sandbox Code Playgroud)

当我尝试输出测试号123.456时,printf产量:

123.46

cout收益率:

1.2 + E02

有什么我可以做的iomanip来复制这个,还是我必须回去使用printf

[ 实例 ]

c++ floating-point printf cout modifiers

7
推荐指数
1
解决办法
529
查看次数

以编程方式使用多个Key进行键绑定

绑定CTRL+的方法S

new KeyBinding( SaveCommand, Key.S, ModifierKeys.Control )

for CTRL+ Shift+ S

new KeyBinding( SaveCommand, Key.S, ModifierKeys.Control | ModifierKeys.Shift)

但是,怎么样CTRL+ H+ S?? 有什么建议?

c# wpf key key-bindings modifiers

5
推荐指数
0
解决办法
37
查看次数

Webmethods中的正则表达式修饰符

我试图在Webmethods映射步骤中使用正则表达式模式.问题是忽略使用正则表达式修饰符匹配字符串的情况.
例如:

输入是'TEST'或'test'或'Test'

Branch on 'input'
/test/i : MAP
Run Code Online (Sandbox Code Playgroud)

但正如我在不同的webmethods论坛上读到的那样,在Webmethods中使用访问修改器是一种限制.所以,我无法使用'/ i'.
有关如何做到这一点的任何想法或暗示?
提前致谢.

regex pipeline webmethods eai modifiers

3
推荐指数
1
解决办法
1201
查看次数

使用“开放”和“公开”

我已经阅读了有关新修饰符“open”和“fileprivate”的文档。但有两件事我不明白:

  1. 为什么不能将协议或扩展声明为“开放”?这是否意味着不可能在模块之外使用这些东西?
  2. 如果我不想为模块构建类,而是为通用应用程序构建类,那么我是否应该将我的类和方法声明为“开放”,或者仅将它们保留为“公共”是一个好习惯吗?

modifiers swift swift3

3
推荐指数
1
解决办法
3487
查看次数