????4????????????????

??????????????н????????DifferPackageExtend.java?????????????Out??

????DifferPackageExtend.java

package com.zj.other;
 
import com.zj.main.Out;
 
public class DifferPackageAndExtend extends Out{
    public static void main(String[] args){
       //create an DifferPackageAndExtend's object??which extends Out
       Out extend=new DifferPackageAndExtend();
     
       //create a protected inner object by 'new'
       //Out.ProtectedIn protectedIn=extend.new ProtectedIn();
       //->error:The constructor Out.ProtectedIn() is not visible
     
       // create a protected inner object by 'out's method'
       Out.ProtectedIn protectedIn=extend.getProtectedIn();
       protectedIn.public_arg=0;
       protectedIn.public_method();
    }
}

???????new??????????????????????Out.ProtectedIn?????????????????????????

???????getInnerInstance()???????protected??????????????????public?????public?????????????protected??????????????????????????????????????protected?????????????????????á?