Java 从runnable访问方法的正确方法

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() {

我有两个选项可以从runnable内部访问方法:

案例1:

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的问题。。在这两种情况下,你都在做同样的事情,这取决于你的课程和你想做什么。也就是说,这个问题不能按原样回答。