access-modifiers相关内容

Java 中的 public、protected、package-private 和 private 之间有什么区别?

在 Java 中,是否有明确规定何时使用每个访问修饰符,即默认(包私有)、public、protected 和 private,同时制作class和interface并处理继承? 解决方案 官方教程可能对你有用. 班级包装子类 (相同的包)子类 (diff pkg)世界 public + + + + + 受保护 + + + + 无修饰符 + + + 私有 + +:可 ..
发布时间:2021-11-19 22:24:45 Java开发

Scala 中的最终类和密封类有什么区别?

Scala 中有两种修饰符:final 和 sealed 它们之间有什么区别?什么时候应该使用一个? 解决方案 final 类不能扩展,句号. sealed trait 只能在与声明相同的源文件中扩展.这对于创建 ADT(代数数据类型)很有用.ADT 由其派生类型的sum定义. 例如: Option[A] 由 Some[A] + None 定义. A List[A ..
发布时间:2021-07-15 20:09:42 其他开发

在派生类中使属性只读

我在我的派生类中覆盖了一个属性,我想让它成为只读的.C# 编译器不允许我更改访问修饰符,因此它必须保持公开状态. 这样做的最佳方法是什么?我应该在 set { } 中抛出一个 InvalidOperationException 吗? 解决方案 让 setter 在派生类中抛出 InvalidOperationException 违反了 Liskov 替换原则.本质上使 setter ..
发布时间:2021-06-13 19:41:35 C#/.NET

如果可以通过反射绕过访问修饰符,那么它们的目的是什么?

我了解使用访问修饰符是编写Java(或大多数)代码时的重要实践,但是由于您可以使用反射来绕过这些修饰符,因此不是有效地使访问冗余变得多余了吗? 例如,如果我想通过将对象敏感变量设置为私有并提供访问器方法来保护它们,那么仍然可以轻松地使用反射来进入并绕过该对象,并可能设置不安全的值.为什么Java提供访问修饰符,然后提供绕过它们的工具?不使用它们似乎会更容易. 解决方案 访问修饰符的一 ..
发布时间:2021-05-18 20:30:59 Java开发

为什么不能使用“使用静态"的功能,带有私人枚举的功能?有没有其他选择?

我在此类中使用私有枚举.我想使用C#6的“使用静态"功能,如下所示: 使用静态ConsoleForSimpleTests.Foo.MyEnum;命名空间ConsoleForSimpleTests{公共课Foo{私人枚举MyEnum {我,不要,想要,要,要,要公开,}私有MyEnum值;公共无效SomeMethod(){开关(值){情况一:案例DonT:案例旺旺:案例:案例:情况是:案例公开:休 ..
发布时间:2021-05-04 20:22:36 C#/.NET

在案例类中获取父类的属性

如果我有一个案例类继承了这样的另一个类 类Person(名称:字符串){}案例类Male()扩展Person("Jack"){def f = super.name//无效} 如何从Male类中获取name属性? 解决方案 class Person(name:String){ 在此声明中, name 不是类的字段,它只是构造函数参数.因此,可以在构造函数内部访问它,但不能在外部( ..
发布时间:2021-04-22 19:04:51 其他开发

我可以在公共方法中声明私有变量吗?

这个问题是我在一次采访中问的. 我们可以在公共方法中声明私有变量吗? 如果可以,我们可以通过public方法访问变量吗? 我尝试使用Java,但是不允许在方法内部定义私有变量,这是为什么? public class GetUser { public String getUserName(){ private String user="David"; return ..
发布时间:2020-08-19 21:12:09 Java开发

包的最终变量可以通过反射更改吗?

可以通过反射更改包最终变量吗? 说我有这个: public class Widget { final int val = 23; } 如果可以访问,可以通过反射更改val吗? 如果是这样,有没有办法在不使用安全管理器的情况下防止这种情况发生? 解决方案 结果是,更改最终成员会使反射获得的值不同于常规代码返回的值!这很吓人. import java.lang. ..
发布时间:2020-08-19 21:12:04 Java开发

Java定义一个显式的package-private修饰符

很明显,Java具有访问级别 package-private 通过不添加任何显式修饰符来实现的. 但是没有办法显式添加此修饰符吗?当我们只想使用包中的成员时,需要省略访问级别有点令人困惑. 如果没有办法,为什么私有软件包决定设置为默认级别? 例如,如果默认级别是公共级别,则比我们更自觉地定义相关访问级别. 这与 编辑 您可以使用Lombok的 @PackagePriv ..
发布时间:2020-07-16 18:47:52 Java开发

隐藏外部世界的内部服务,以确保使用正确的高级服务

我正在一个电子商务网站上。我有包含属性和照片的广告实体。将属性写入数据库,并将照片存储在文件系统中。 我在基础设施项目中创建了 WriterService ,该服务负责保存广告...在引擎盖上应该知道属性进入数据库,照片进入文件系统...但是这个细节与外界无关...外界应该使用 WriterService 保存广告。 这是我的作家服务: 公共类WriterService { ..
发布时间:2020-05-31 23:56:10 C#/.NET

是否对独立的秋千应用程序中的所有字段使用私有修饰符?

我有一个带有主类的独立Swing应用程序,我将其称为MainClass。只能通过此类的main(String args [])方法访问此MainClass。换句话说,任何其他类都不会使用该类。 我应该将MainClass的成员字段设置为“私有”吗?我认为这是多余的,因为没有其他类可以实例化MainClass,但是另一个更有经验的程序员认为它违反了Java最佳实践,即不将字段标记为“私有”。 ..
发布时间:2020-05-31 23:56:02 Java开发

如何使用@BeforeSuite和每个@Test创建正确的并行硒执行,并使用TestNG在单独的类中?

我尝试使用 Selenium 和 TestNG 进行测试设计,我将每个 @Test 放在一个单独的类中,并使用一次 @BeforeSuite & @AfterSuite 对于所有类,原因是: 代码易于维护 数据驱动,以便能够选择要通过 xml 文件运行的类。 然后我认为我只登录一次,以后所有的后续测试都可以使用该会话,到目前为止,我所做的是: Base 类: 公共类Bas ..
发布时间:2020-05-31 23:56:00 Java开发

GetProperty方法返回null C#.Net

有人可以解释一下,为什么System.Type中的GetProperty方法对于声明为“内部”但适用于“公共”的属性返回null。 内部类Test { 公共字符串ALocal {get;组; } 内部字符串SLocal {get;组; }} var test = new Test(); var testType = test.GetType(); var aProp = ..
发布时间:2020-05-31 23:55:57 C#/.NET

限制对象的创建

我在这里有一个很奇怪的问题。我有Class A,Class B和ClassC。我想创建Class B的对象,它可以创建A的对象。但是如何限制Class C从创建Class A的对象。 一种方法是在B类中定义A类,以便只有B类可以创建A类的实例,而C类不能访问A类。 但是,我认为嵌套是错误的方法。 我们有什么方法可以限制对象的创建吗?是否可以使用属性和反射来帮助限制? 请分享 ..
发布时间:2020-05-31 23:55:54 C#/.NET

使字段/方法仅可用于同一程序集中的派生类?

在C#中的公共类上,是否有一种方法只能使同一程序集中的派生类可以访问字段/方法? 据我了解,保护的内部的含义与受受保护的 或 内部的含义相同(即可以从同一程序集中的派生类或类访问),这不是我所需要的。 解决方案 如果将“仅内部”字段/方法从公共类删除到内部类怎么办?然后,该程序集中的所有类都可以从内部类派生而来: 公共抽象类MyClass { 公共字符串名称{组; } } ..
发布时间:2020-05-31 23:55:51 C#/.NET

是否有限制使用解决方案的访问修饰符?

在我的.NET解决方案中,我有两个项目:一个主项目和一个针对主项目运行测试的项目。在我的项目中,我有几种方法可以保持“私有”,但也要对其进行测试。是否有访问方法可以将这些功能限制在我的解决方案中? 解决方案 您正在寻找 InternalsVisibleTo 属性。 此属性使您可以指定其他程序集,这些程序集应有权访问程序集内部的类型和方法。因此,在您的主项目AssemblyInfo.c ..
发布时间:2020-05-31 23:55:48 C#/.NET