yinmingzheng13 发表于 2008-4-14 19:56

package 2; static ***************谢!比如创建对象,最好能稍做讲解。

package p1;


public class Original
{
        int n_friendly = 1;
        private int n_private = 2;
        protected int n_protected = 3;
        public int n_public = 4;
       
        void Access()
        {
                System.out.println("**** In same class,you can access...");
                System.out.println("friendly member" +n_friendly);
                System.out.println("private member" +n_private);
                System.out.println("protected member" +n_protected);
                System.out.println("public member" +n_public);
        }
       
       
        class Derived extends Original
        {
                void Access()
                {
                        System.out.println("**** 相同包的子类 ****");
                        System.out.println("friendly member" +n_friendly);
                        //System.out.println("private member" +n_private); 不能访问
                        System.out.println("protected member" +n_protected);
                        System.out.println("public member" +n_public);
                       
                        Original o = new Original();
                        System.out.println("**** 相同包的子类的其他对象****");
                        System.out.println("friendly member" +o.n_friendly);
                        //System.out.println("private member" +o.n_private); 不能访问
                        System.out.println("protected member" +o.n_protected);
                        System.out.println("public member" +o.n_public);
                }
        }
   
   
    class SamePackageClass
    {
            void Access()
            {
                    Original o = new Original();                    //?
                    System.out.println("**** 相同包的其他类 ****");
                    System.out.println("friendly member" +o.n_friendly);
                        //System.out.println("private member" +o.n_private); 不能访问
                        System.out.println("protected member" +o.n_protected);
                        System.out.println("public member" +o.n_public);
            }
    }
   
    class AccessControl
    {
            public static void main(String[] args)
            {
                    Original o = new Original();
                    o.Access();
                    Derived d = new Derived();
                    d.Access();
                    SamePackageClass s = new SamePackageClass();
                    s.Access();
            }
    }
   
   
   

package p2;

    class Derived extends p1.Original
    {
            void Access()
            {
                    System.out.println("**** 不同包中的子类 ****");
                    //System.out.println("friendly member" +n_friendly);
                    //不能访问
                    //System.out.println("private member" +n_private);
                    System.out.println("protected member" +n_protected);
                    //子类可以访问父类
                    System.out.println("public member" +n_public);
           
            p1.Original O = new Original();
            System.out.println("**** 访问在不同包中的父类 ****");
            //System.out.println("friendly member" +o.n_friendly);
                //System.out.println("private member" +o.n_private); 不能访问
                //System.out.println("protected member" +o.n_protected);
                System.out.println("public member" +o.n_public);
                }
    }
   
   
    class AnotherPackageClass
    {
            void Access()
            {
                    p1.Original o = new p1.Original();
                    System.out.println("**** 另一包中的其他类 ****");
                    //System.out.println("friendly member" +o.n_friendly);
                    //System.out.println("private member" +o.n_private); 不能访问
                    //System.out.println("protected member" +o.n_protected);
                    System.out.println("public member" +o.n_public);
            }
    }
   
   
    public class AccessControl
    {
         public static void main (String [] args)
            {
                Derived d = new Derived();
                d.Access();
                AnotherPackageClass a =new AnotherPackageClass();
                a.Access();
        }
    }
}


页: [1]

编程论坛