access-modifiers相关内容
当我在Visual Studio中右键单击一个类(属于第三方程序集的一部分-不是我编写的代码)并选择“转到定义"时,我可以看到该类的所有方法,属性等. 我注意到所有这些都是public,并且没有显示private(或任何其他级别的访问权限)成员. 此功能仅显示类的public个成员吗? 解决方案 您可以在 当您尝试运行转到定义或窥视定义命令时 对于标记为内部的类型或成员,Vi
..
在代码行方面,对于“获取"的大小是否存在任何准则或普遍共识?我在一个成员上有一个Get方法,该成员在这里很容易增长到30行代码.我不确定应该在什么时候将其提取到方法中.但是然后,我只能像GetMyString这样调用它,然后将值分配给另一个成员,然后无论如何都要在构造函数中调用它. 这样做值得吗? 这对SO来说是否过于主观? 解决方案 dcastro的答案很好,但可以使用一些扩
..
想知道,为什么发明Java的人会编写诸如setAccessible(boolean flag)之类的方法,而这些方法使访问修饰符(特别是私有的)变得无用,并且无法保护字段,方法和构造函数免于被访问?看下面的简单示例: public class BankAccount { private double balance = 100.0; public boolean withd
..
在Java中,辅助方法通常标记为protected而不是private,以便同一包中的单元测试可以测试辅助方法. (具体来说,我正在使用JUnit.) 这在Kotlin中似乎不起作用.建议改用哪种访问修饰符? 解决方案 internal(或没有修饰符)在这里效果很好
..
实际使用C#,Java和其他编程语言中的类,属性或方法的访问修饰符对应用程序的安全性有影响吗?他们是否也以某种方式防止未经授权的访问?或者它们只是清晰和适当编程的工具? 解决方案 不,访问修饰符不提供安全保护。它们仅仅是为了方便开发人员,例如它们有助于强制执行良好的编码实践并帮助编写模式。 通过使用Java / C#和其他语言中的反射,可以轻松访问其他无法访问的修饰符。
..
考虑这段代码: public class TopLevelClass { Cloneable c = new Cloneable(){ private int privateField; private void privateMethod(){}; }; } 有一个匿名类,其中包含 private 成员字段和私有成员方法。它已成功编译。 然后考虑这
..
相当新的Java,但我想知道为什么包访问被认为比子类访问“更具限制性”。也就是说,为子类提供对成员访问权限的每个访问修饰符也为整个包提供访问权限,并且有一些修饰符可以提供包访问但不提供子类访问。 这不是完全倒退吗?假设我在某个包中有一个类ControlledInstantiation。如果我有另一个类AlsoControlledInstantiation扩展ControlledInstant
..
为什么我不能在包外面使用受保护的构造函数来获取这段代码: 包代码; 公共类示例{ protected Example(){} ... } Check.java package test; 公共类检查扩展示例{ void m1(){ 示例ex = new Example(); //编译错误 } } 为什么即使我延长了课程,
..
在java编程中,使用protected或public的方法级访问修饰符可以以任何方式影响性能吗?如果是这样,它会以什么方式影响运行时性能。 解决方案 引用以下答案的com / users / 3474 / erickson“> erickson : 字段上的访问修饰符在 速度上没有任何区别,但是调用访问器方法 。 ps。请提供原始答案而不是此答案。
..
Iam准备SCJP,我也知道受保护的成员范围在包内以及其他包中,只有继承可能有一些条件。 例如: i有三个类作为Parentclass Childclass Friendclass package x.parent; class Parentclass { protected int x = 10; ............... } package x.c
..
我知道具有默认访问控制的类成员可以在包级别访问,但我对包级访问实际意味着什么感到困惑。如果可以在包级别访问默认成员,那么在下面的示例中,我不应该在类Test2中看到它吗? class 1 - package pkg1; 公共类测试{ int i = 0; } class 2 - import pkg1.Test; public class T
..
据我所知,OOD中的经验法则是尽可能减少对给定对象的所有成员的访问权限。 C#和Java似乎都实现了同一组访问修饰符;然而,令我困惑一段时间的东西现在是为什么Java类似乎主要被声明为公共,而C#类似乎主要被声明为默认。 这些语言是否有一些微妙的强加这些差异,还是仅仅是约定或什么? 我发现自己经常使用我的C#代码(我习惯性地将大多数课程公开,除了试图取悦编译器的内部类,匿名类和其他类的
..
我正在阅读 Java编程语言第3版这本书。 在第3.5章中,它说明了 protected 修饰符,其中包含以下单词: 更确切地说,除了可以在类本身内访问以及在 相同包中编码之外,还可以通过对象引用 从类访问受保护的成员,这至少是与类相同的类型,类类型的引用或其子类型的 。 这些词语让我困惑,在两个方面: 1。受保护的成员可以通过同一个包中的代码访问吗?以前我所知道的是
..
我正在学习Java,而我正在阅读的书中有关于克隆的以下示例。在 clone()中,我的第一个实例能够在新对象上设置缓冲区,即使缓冲区是 private 。似乎它应该要求字段 protected 才能使用。 为什么允许这样做? clone()是否具有允许其访问私有字段的特殊权限? 公共类IntegerStack实现Cloneable { private int [] buffer;
..
有没有理由可以更改被覆盖方法的访问修饰符?例如, 抽象类Foo { void start(){...} } 然后将package-private访问修饰符更改为 public , final class Bar extends Foo { @Override public void start(){。 ..} } 我只是出于好奇而问这
..
如果我用Java创建一个类,我总是被告知惯例是使一个类的所有字段都是私有的。如果我需要访问或更改它们,我可以创建一个访问器和mutator方法。我确实理解私有变量的重要性,因为它们有助于降低复杂性并允许封装。 我不明白的是,如果我创建一个公共访问者和mutator方法,那不是变量public?为什么在任何人都可以访问私有变量的情况下仍然使用私有变量? 我还应该注意,我理解这些方法的重要
..
我完全对php中的访问修饰符感到困惑。关于访问修饰符的内存利用率或仅可访问性的差异是否有任何区别。请建议。 如果我有以下代码: public Class Employee { public $ emp_name ='xyz'; protected $ emp_phone ='1234567891'; private $ emp_code ='101'; 公共函数getName
..
有人可以向我解释受保护 / 公众 内部类? 我知道 public 内部类应尽可能避免(如本
..
在Java中,访问说明符和访问修饰符是一回事吗? 解决方案 不。 “访问修饰符”是 private , protected 和 public ,而在 Java语言规范并且AFAIK不是广泛使用的东西。 ”访问修饰符“是的官方术语, protected 和 public java.sun.com/docs/books/jls/third_edition/html/j3TOC.html\
..
我正在阅读一些Java文本,文中说我们只能应用 public 或默认访问修饰符类和接口。因此,如果我们声明它是一个编译错误: 私有类A {} 或 受保护等级A {} 我只是好奇为什么类或接口无法接收 private 或 protected 访问修饰符? 解决方案 private 表示“仅在封闭类中可见”。 protecte
..