Java 从runnable访问方法的正确方法
我有两个选项可以从runnable内部访问方法: 案例1:Java 从runnable访问方法的正确方法,java,runnable,Java,Runnable,我有两个选项可以从runnable内部访问方法: 案例1: public class ParentClass{ private void otherMethod(){ // some work // may call someMethod() from here also } class MyThread implements Runnable{ @Override public void run() {
public class ParentClass{
private void otherMethod(){
// some work
// may call someMethod() from here also
}
class MyThread implements Runnable{
@Override
public void run() {
someMethod();
}
private void someMethod(){
// some work
}
}
}
案例2:
public class ParentClass{
private void otherMethod(){
// some work
// may call someMethod() from here also
}
class MyThread implements Runnable{
@Override
public void run() {
someMethod();
}
}
private void someMethod(){
// some work
}
{
我想知道在MyThread中定义someHod()方法的利弊
以及这两种情况之间的区别。简单:使用所需的最小范围和最严格的可见性 如果
someMethod()
只在MyThread
中使用,那么显然要将其放入MyThread
中,并使其私有化
如果ParentClass
也使用someMethod()
,请将其放入ParentClass
中。如果仅从ParentClass
和MyThread
调用someMethod()
,则将其设置为private
。如果它是从其他包类(相同包)调用的,则将其设为包私有或受保护。如果它也是从子类调用的,则将其设置为受保护的。如果它也是从其他软件包调用的,请将其设置为公共的,这不是SE的问题。。在这两种情况下,你都在做同样的事情,这取决于你的课程和你想做什么。也就是说,这个问题不能按原样回答。