当前位置: 首页 > 面试题库 >

Java中可见性修饰符的使用

山鸿彩
2023-03-14
问题内容
class Orange{

    Orange(){
    }

}

在类的前面和构造函数的前面使用修饰符(在本例中为package-
private)有什么区别?我认为构造函数前面的修饰符意味着可以实例化该类的实例Orange。但是班级前面的修饰符呢?


问题答案:

首先,由3个访问修饰符创建4个访问级别。

  1. 公共-随处可见
  2. 受保护-可在同一个包装中以及儿童中使用
  3. 默认-仅在同一程序包中可访问
  4. 私人-仅在同一班级可以访问。

您是正确的-构造函数级别的修饰符与类的实例直接相关。

类级别的修饰符决定类的可访问性。



 类似资料:
  • private private修饰符是我们使用的最限制的修饰符。它表示它只能被自己所在的文件可见。所以如果我们给一个类声明为private,我们就不能在定义这个类之外的文件中使用它。 另一方面,如果我们在一个类里面使用了private修饰符,那访问权限就被限制在这个类里面了。甚至是继承这个类的子类也不能使用它。 所以一等公民,类、对象、接口……(也就是包成员)如果被定义为private,那么它们只

  • Kotlin中这些修饰符是与我们Java中的使用是有些不同的。在这个语言中默认的修饰符是public,这节约了很多的时间和字符。但是这里有一个详细的解释关于在Kotlin中不同的可见性修饰符是怎么工作的。

  • 所有构造函数默认都是public的,它们类是可见的,可以被其它地方使用。我们也可以使用这个语法来把构造函数修改为private: class C private constructor(a: Int) { ... }

  • 我无法理解内部访问修饰符。在我的例子中,我无法产生任何与公共行为不同的情况。即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(来自与jar中使用的包无关的不同包)。在文档中使用了术语模块,但我无法找到模块的确切含义。 因此,我的问题是: > kotlin中的模块是什么? 内部访问修饰符与公共修饰符有何不同?

  • 问题内容: 在不止一次的情况下,我发现自己希望获得Java中无法实现的可变可见性。我希望某些成员在他们自己的班级和任何子班级中可见,但对于包的其余部分或世界其他地方不可见。换句话说,我想要这样: 但是,Java的设计师只给了我这个: 我想要这样的典型情况是在创建抽象类时。有时我发现抽象的父母需要访问某些成员,但是具体的孩子也需要访问。我可以通过成为成员来给他们这种访问权限,但这在我真的不想要的时候

  • 我们已经准备好使用public来进行重构了,但是我们还有很多其它细节需要修改。比如,在RequestForecastCommand中,我们在构造函数中我们创建的属性zipCode可以定义为private: class RequestForecastCommand(private val zipCode: String) 所作的事情就是我们创建了一个不可修改的属性zipCode,它的值我们只能去得到