标签: access-modifiers

建设者总是必须公开吗?

我的第一个问题是 -

   class Explain() {
        public Explain() {
      }
   }
Run Code Online (Sandbox Code Playgroud)

构造函数是否应始终声明为公共?

如果我创建一个private构造函数怎么办?

我总是看到构造函数是隐含的public.那么为什么private构造函数有用呢?或者根本没用.因为没有人可以调用它,或者从不创建对象(因为private构造函数)!这是我的第二个问题.

java oop constructor design-patterns access-modifiers

50
推荐指数
5
解决办法
3万
查看次数

Java中的修饰符关键字顺序

每当我用Java编写带有更多关键字的方法时public void,每次我用另一种方式编写它.有时" static public void"有时" public static void"等.

这些关键字的最佳订单(最佳做法)是什么?

[ abstract/static] [ final] [ synchronized] [ public/private/protected] [ result_type] ???

java syntax coding-style access-modifiers

49
推荐指数
4
解决办法
2万
查看次数

内部抽象类:如何隐藏程序集外的用法?

我有一个公共程序集/项目,它有一个抽象基类,然后是几个我想公开给其他程序集的派生类.

我不希望抽象基类出现在Intellisense中的这些其他程序集中,所以我想我会成功internal,但是我得到了这个错误:

可访问性不一致:基类"设置"比"IrcSettings"类更难访问....

我真的不明白.我被迫制作抽象Settingspublic,因此在这个程序集之外可见.

我怎样才能成为这门课internal呢?

c# inheritance abstract-class access-modifiers

48
推荐指数
4
解决办法
2万
查看次数

如何在IntelliJ IDEA中显示类的访问修饰符?

我最近升级到Intellij IDEA 2017.2并且访问修饰符图标从我的文件树中消失了......如何让它们恢复?

access-modifiers intellij-idea

46
推荐指数
2
解决办法
4234
查看次数

为什么抽象类的构造函数应该受到保护而不是公开?

ReSharper建议改变类中public构造函数的可访问性,但它没有说明这背后的基本原理.abstractprotected

你能解开一些光吗?

.net c# oop inheritance access-modifiers

45
推荐指数
2
解决办法
1万
查看次数

为什么我们不能在覆盖C#中的方法时更改访问修饰符?

在C#中,我们无法在从基类重写方法时更改访问修饰符.例如

Class Base
{
   **protected** string foo()
   {
       return "Base";
   }
}

Class Derived : Base
{
   **public** override string foo()
   {
       return "Derived";
   }
}
Run Code Online (Sandbox Code Playgroud)

这在C#中无效,会产生编译时错误.

我想知道原因,为什么不允许这样做.是否存在任何技术问题,或者是否会导致访问限制方面不一致的问题?

c# oop access-modifiers

44
推荐指数
2
解决办法
2万
查看次数

41
推荐指数
3
解决办法
6万
查看次数

公共,私人 - 大写,小写:

来自Delphi的GoLang新手,C++:

我第一次尝试在Go中创建自己的包,我遵循了有关如何布局工作空间等的所有说明,但我一直在收到编译器错误:

./myPackage.go:52: undefined: myFunc
Run Code Online (Sandbox Code Playgroud)

稍微探讨一下后,我发现Go中的公共访问修饰符只需通过大写声明一个函数即可实现.大.

但是当我开始尝试容器类时 - List对于初学者,我发现我必须声明一个List引用返回值,如下所示:

func GetFactors(value *int64) *list.List {...
Run Code Online (Sandbox Code Playgroud)

*list 是小写的.

当我声明对列表的本地引用时 - 我必须使用:

l := list.New()
Run Code Online (Sandbox Code Playgroud)

再次,小写的list.

所以,我很困惑.规则是什么?列表调用和引用显然是公开的,或者我无法调用/使用它们 - 所以为什么它们是小写的?

private public access-modifiers case-sensitive go

41
推荐指数
3
解决办法
4万
查看次数

在Java中有类似内部类的东西吗?

在C#中,您可以将类标记internal为只能从同一个包中访问它.Java中有类似的东西吗?

java class access-modifiers internal

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

C++类(公共,私有和受保护)

如何可以在C++类中声明public,privateprotected

c++ private protected public access-modifiers

38
推荐指数
4
解决办法
5万
查看次数