- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前,我正在做 Oracle 的嵌套类教程,在影子部分我有一些我根本不理解的东西。
方法methodInFirstLevel
的第二行执行代码打印出this.x
的值,但在main方法中我们已经将参数23传递给了新对象实例的方法的参数。那么为什么 FirstLevel
的 int x
仍然回到 1 呢? this
关键字不应该引用对象实例吗?
public class ShadowTest {
public int x = 0;
class FirstLevel {
public int x = 1;
void methodInFirstLevel (int x) {
System.out.println("x = " + x);
System.out.println("this.x = " + this.x);
System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
}
}
public static void main(String[] args) {
ShadowTest st = new ShadowTest();
ShadowTest.FirstLevel f1 = st.new FirstLevel();
f1.methodInFirstLevel(23);
}
}
输出为:
x = 23
this.x = 1
ShadowTest.this.x = 0
最佳答案
该代码块中没有发生任何分配。
void methodInFirstLevel (int x) {
System.out.println("x = " + x);
System.out.println("this.x = " + this.x);
System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
}
参数 x 从未分配给 this.x 或 ShadowTest.this.x ,因此两个值保持相同。
要将 this.x 值更改为 23,您必须将其设置为
this.x =x;
关于java - 内部类实例变量遮蔽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472474/
我在 Interface Builder 中制作了一个标签,具有固定高度和固定宽度的约束: 我将它子类化给它一个白色的圆形边框: class CircularLabel: UILabel {
我有一个包含两个依赖项的 Maven 项目,A 和 B。其中每一个都传递地依赖于 C,但它们依赖于不同版本的 C。假设 A 依赖于 C 版本 1,B 依赖于 C 版本 2。 不幸的是,A 与版本 2
考虑以下 JavaScript 中的阴影示例: let a = 99;
考虑以下 JavaScript 中的阴影示例: let a = 99;
我列出了可以下载的目录中的文件。我制作了我不希望用户能够下载不可点击的对象的复选框。所有目录及部分文件均无法下载。 但我想完全隐藏复选框。令人困惑的是该复选框在那里但无法使用。 我的示例代码位于 js
我有一个使用 vlc 库的媒体播放器应用程序。 VLC 有 'armeabi-v7a' 和 'arm64-v8a' 的 jni 库。现在为了减小大小,我想分别为这两种架构上传 apk,所以我在 gra
对于 MongoDB 的模式验证器,我有以下内容:{ UserSchema.path('email').validate(async function (email: string) { cons
完整的错误信息: Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.3:shade (default) on p
我是一名优秀的程序员,十分优秀!