首页 / JAVA / Java Puzzle:修饰符
Java Puzzle:修饰符
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java Puzzle:修饰符,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1176字,纯文字阅读大概需要2分钟。
内容图文
请你告诉我
1)为什么可以将构造函数指定为包可见类的公共?例如:
class TestModifiers {
public TestModifiers() {
}
}
此类不能在任何地方实例化,而是在同一个包中.那么对于构造函数使用包可见修饰符是不够的呢?对于这样的类中的任何方法(公共)也是如此(包可见)
2)说,在内部类中我创建了两个私有变量.为什么我能从外层看到他们?不是很奇怪吗?例如:
class A {
A(){}
class B {
private int b1;
private int b2;
}
public static void main(String[] args) {
new B().b1 = 1;
new B().b2 = 2;
}
}
解决方法:
在具有公共构造函数的非公共类中没有任何值,因为正如您所说,该类在该范围之外是不可访问的.它将编译 – 这就是事情的方式 – 但许多代码分析工具将生成警告.
如果类扩展或实现公共类或接口,则具有公共方法的非公共类中有值,因为派生类可以代表基类或接口类型:
package mypackage;
class MyRunnable implements Runnable {
private final String message;
MyRunnable(String message) {
this.message = message;
}
@Override
public void run() {
System.out.println(this.message);
}
}
public class Surprises {
public static Runnable getSurprise() {
return new MyRunnable("boo!");
}
}
然后,mypackage之外的代码可以获取MyRunnable实例(作为Runnable)并调用public方法:
Runnable r = Surprises.getSurprise();
r.run();
我会忽略你的第二个问题,因为它在评论的其他地方得到了回答.
内容总结
以上是互联网集市为您收集整理的Java Puzzle:修饰符全部内容,希望文章能够帮你解决Java Puzzle:修饰符所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。