Java中的内部类和静态嵌套类之间的主要区别是什么?设计/实施是否在选择其中一个方面发挥作用?
是什么区别public,private以及protected用C++继承?我在SO上发现的所有问题都涉及具体案例.
在引用具有getter/setter的Java POJO的内部私有变量时,我使用了以下术语:
上面有什么区别吗?如果是这样,使用的正确术语是什么?持有此实体时是否有不同的术语?
如果我没有明确说明方法或实例变量的默认访问修饰符是什么?
例如:
package flight.booking;
public class FlightLog
{
private SpecificFlight flight;
FlightLog(SpecificFlight flight)
{
this.flight = flight;
}
}
Run Code Online (Sandbox Code Playgroud)
此构造函数的访问修饰符是受保护的还是包的?同一个包中的其他类可以flight.booking调用这个构造函数吗?
我对一些文档使用的术语"包私有"以及"默认访问"的使用感到有些困惑.包私有和默认访问都不是protected的同义词吗?
class Person
{
private BankAccount account;
Person(BankAccount account)
{
this.account = account;
}
public Person someMethod(Person person)
{
//Why accessing private field is possible?
BankAccount a = person.account;
}
}
Run Code Online (Sandbox Code Playgroud)
请忘记设计.我知道OOP指定私有对象是该类的私有对象.我的问题是,为什么OOP设计为私有字段具有类级访问而不是对象级访问?
我最近在学习Java,我遇到了package-private类的概念,如果我们没有指定任何东西,这是默认的.但后来我意识到:
我很少看到使用package-private类.是否有这样的原因,例如,它有严重的缺点,它是多余的,或者只是我阅读不够?是否有强烈的论据支持/反对其使用?
如果它在大多数情况下确实没用,为什么它会是默认值?
在什么情况下我们应该在现实世界中使用package-private?即,什么时候会变得不可替代?
换句话说,默认的package-private修饰符的主要优点和缺点是什么?
今天,我将Java版本从16更新到17,我发现sealed类是其中的一个新功能。我认为可以这样声明:
public sealed class Main permits AClass, AnotherClass {
}
Run Code Online (Sandbox Code Playgroud)
但是,Java 中的密封类有什么用呢?
我还知道这是JDK 15中的预览功能。
java ×9
c++ ×2
class ×2
.net ×1
c++-faq ×1
default ×1
inheritance ×1
interface ×1
java-17 ×1
modifier ×1
oop ×1
pojo ×1
protected ×1
sealed-class ×1
terminology ×1