标签: access-modifiers

Java中的public,protected,package-private和private有什么区别?

在Java中,有没有关于何时使用每个访问修饰符,即默认明确的规则(包私有)public,protected并且private,同时使classinterface和处理继承?

java private protected public access-modifiers

3004
推荐指数
24
解决办法
201万
查看次数

在C#中,public,private,protected和没有访问修饰符有什么区别?

我所有的大学四年我一直在使用public,并想知道的区别public,privateprotected

还有什么可以static做而不是什么都没有?

.net c# asp.net access-modifiers

701
推荐指数
12
解决办法
65万
查看次数

537
推荐指数
6
解决办法
27万
查看次数

C#中"internal"关键字的实际用途

能否解释一下,internalC#中关键字的实际用途是什么?

我知道internal修饰符限制了对当前程序集的访问,但我什么时候需要呢?

c# internals access-modifiers

402
推荐指数
13
解决办法
18万
查看次数

内部与私人访问修饰符

C#中的访问修饰符internal和有效private访问修饰符有什么区别?

.net c# private access-modifiers internal

386
推荐指数
6
解决办法
17万
查看次数

C#中的默认访问修饰符是什么?

类,方法,成员,构造函数,委托和接口的默认访问修饰符是什么?

c# access-modifiers

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

Swift有访问修饰符吗?

在Objective-C实例中,数据可以是public,protectedprivate.例如:

@interface Foo : NSObject
{
  @public
    int x;
  @protected:
    int y;
  @private:
    int z;
  }
-(int) apple;
-(int) pear;
-(int) banana;
@end
Run Code Online (Sandbox Code Playgroud)

我没有在Swift参考中找到任何访问修饰符.是否可以限制Swift中数据的可见性?

access-modifiers swift

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

'protected'和'protected internal'有什么区别?

有人可以详细说明C#中'protected'和'protected internal'修饰符之间的区别吗?看起来他们的行为方式相同.

.net c# access-modifiers

235
推荐指数
6
解决办法
14万
查看次数

有没有理由在C#中使用私有属性?

我刚刚意识到C#属性构造也可以与私有访问修饰符一起使用:

private string Password { get; set; }
Run Code Online (Sandbox Code Playgroud)

虽然这在技术上很有意思,但我无法想象何时使用它,因为私人领域涉及更少的仪式:

private string _password;
Run Code Online (Sandbox Code Playgroud)

我无法想象什么时候我需要能够内部获取但不能设置设置但不能获得私有字段:

private string Password { get; }
Run Code Online (Sandbox Code Playgroud)

要么

private string Password { set; }
Run Code Online (Sandbox Code Playgroud)

但也许有一个嵌套/继承类的用例,或者可能是get/set可能包含逻辑而不是仅仅返回属性的值,尽管我倾向于保持属性严格简单并让显式方法做任何逻辑,例如GetEncodedPassword().

是否有人出于任何原因在C#中使用私有属性,或者它只是那些技术上可能但很少使用的实际代码构造之一?

附录

很好的答案,阅读它们我剔除了私人财产的这些用途:

  • 私有字段需要延迟加载时
  • 私有字段需要额外逻辑或计算值时
  • 由于私有字段可能难以调试
  • 为了"向自己提出合同"
  • 在内部转换/简化公开属性作为序列化的一部分
  • 包装要在类中使用的全局变量

c# properties access-modifiers

227
推荐指数
11
解决办法
6万
查看次数

Java是否具有"私有保护"访问修饰符?

我看到一些引用引用了Java中的访问修饰符private protected(两个单词一起):

private protected someMethod() {

}
Run Code Online (Sandbox Code Playgroud)

我发现的其中一个页面就是这里.我的课程也提到了这个访问修饰符(并说它存在).但是,使用它会导致Java语言出错.

我尝试了变量和方法,我很确定它不存在,但我想要解释发生了什么.它被考虑了,然后被拒绝了吗?或者是否在较新版本的Java中删除了它?

编辑:我不是在寻找有关该protected关键字的信息.

java access-modifiers

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