如果子类在不同的包中,为什么我们不能用protected构造函数实例化一个类?如果可以访问protected变量和方法,为什么同样的规则不适用于protected构造函数?包装1:packagepack1;publicclassA{privateinta;protectedintb;publicintc;protectedA(){a=10;b=20;c=30;}}包装2:packagepack2;importpack1.A;classBextendsA{publicvoidtest(){Aobj=newA();//givescompilationerror;why?//System.o
如果不是:privateJButtontheButton;我这样定义一个字段:JButtontheButton;有什么区别? 最佳答案 包。它们对同一包中的其他类可见。FWIW,我通常在这些上使用我自己的无操作@Package注释,只是为了清楚地表明我知道我在做什么——我不只是忘记了一些东西。尽管它是默认设置,但包访问在高质量代码中的使用可能比其他三种可能性中的任何一种都少——有一个很大的异常(exception):在某些风格的单元测试中,希望能够访问通常是私有(private)的方法或字段。提供访问的一种方法是将它们设置为包访问,
如果不是:privateJButtontheButton;我这样定义一个字段:JButtontheButton;有什么区别? 最佳答案 包。它们对同一包中的其他类可见。FWIW,我通常在这些上使用我自己的无操作@Package注释,只是为了清楚地表明我知道我在做什么——我不只是忘记了一些东西。尽管它是默认设置,但包访问在高质量代码中的使用可能比其他三种可能性中的任何一种都少——有一个很大的异常(exception):在某些风格的单元测试中,希望能够访问通常是私有(private)的方法或字段。提供访问的一种方法是将它们设置为包访问,
如何通过反射从对象访问继承的protected字段? 最佳答案 您可能遇到的两个问题-该字段可能无法正常访问(私有(private)),并且它不在您正在查看的类中,而是在层次结构的某个位置。即使遇到这些问题,这样的方法也可以:publicclassSomeExample{publicstaticvoidmain(String[]args)throwsException{ObjectmyObj=newSomeDerivedClass(1234);ClassmyClass=myObj.getClass();FieldmyField=ge
如何通过反射从对象访问继承的protected字段? 最佳答案 您可能遇到的两个问题-该字段可能无法正常访问(私有(private)),并且它不在您正在查看的类中,而是在层次结构的某个位置。即使遇到这些问题,这样的方法也可以:publicclassSomeExample{publicstaticvoidmain(String[]args)throwsException{ObjectmyObj=newSomeDerivedClass(1234);ClassmyClass=myObj.getClass();FieldmyField=ge
出于好奇,为什么finalize()方法的访问修饰符被设为protected。为什么不能是public?有人可以解释一下这背后的任何具体原因吗?另外,我知道finalize()方法只被调用一次。如果我在内部程序中调用它两次,会发生什么?垃圾收集器会再次调用这个吗?privatevoiddummyCall(){try{finalize();finalize();}catch(Throwablee){e.printStackTrace();//NOTREACHESEXCEPTION}} 最佳答案 我用另一个问题回答你的问题:Whyfin
出于好奇,为什么finalize()方法的访问修饰符被设为protected。为什么不能是public?有人可以解释一下这背后的任何具体原因吗?另外,我知道finalize()方法只被调用一次。如果我在内部程序中调用它两次,会发生什么?垃圾收集器会再次调用这个吗?privatevoiddummyCall(){try{finalize();finalize();}catch(Throwablee){e.printStackTrace();//NOTREACHESEXCEPTION}} 最佳答案 我用另一个问题回答你的问题:Whyfin
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭8年前。Improvethisquestion我应该为private还是protected方法编写JavaDoc?那么私有(private)变量呢?我在我的Java书上看到了类示例,并且private变量是JavaDoc的。所以我不明白JavaDocprivate(或protected)方法是否是一个好习惯。 最佳答案 是的,您应该为私有(private)方法编写JavaDoc,即
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭8年前。Improvethisquestion我应该为private还是protected方法编写JavaDoc?那么私有(private)变量呢?我在我的Java书上看到了类示例,并且private变量是JavaDoc的。所以我不明白JavaDocprivate(或protected)方法是否是一个好习惯。 最佳答案 是的,您应该为私有(private)方法编写JavaDoc,即
这page说如下:IntheWindowsregistryisakeycalledMachineGUIDthathasaUUIDwhichiscreatedbyWindowsduringinstallationandshouldintheorybeuniquetothemachine.InpracticethisisnotthecaseandIhaveoftencomeacrossduplicatesofthisIDbetweenmachines.我不明白为什么它不是唯一的,我的意思是Windows是否使用了一些弱算法来生成此GUID或其他东西? 最佳答案