积木首页 | 500多种网页特效 | 函数手册 | 广播电台 | 高清晰图片素材 | 服务器合租 | 万年历 | 网友最新浏览记录
程序开发 网页设计 搜索引擎 特效代码 操作系统 防范病毒 黑客技术 图形图象 电脑硬件 网络技术 服 务 器 数 据 库 网文精粹
您的位置:积木首页 >> 程序开发频道 >> JAVA >> 正文:
标题:public,protected,private,static的用法
时间:2006-12-13 来源:本站原创 浏览数:

每个类都创造了有自己的名字空间,指方法和变量可以知道彼此的存在,可以使用.public类不但可以被同一程序包中的其它类使用,别的程序包中的类也可以使用; 变量和方法的修饰字public、protected、private: 
   public:任何其他类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。 
    class ABC{ 
        public int pub_i=5; 
        public void show)(){ 
        System.out.println("pub_i"+pub_i); 
    } 
    class Demo{ 
        public static void main(String args[]){ 
        ABC abc=new ABC(); 
        System.out.println("abc.pub_i"+abc.pub_i); 
        abc.pub_i=10; 
        abc.show(); 
        } 
    }
    protected变量和方法: 
    如果一个类中变量或方法有修饰字protected,同一类、同一包可以使用。不同包的类要使用,必须是该类的子类,可以存取变量或调用。 
    public class ABC{ 
        protected int pro_i=5; 
        protected void show(){ 
        System.out.println("pro_i=" +pro_i);} 
    } 
    同包的类: 
    class DEF{ 
        public static void main(String  args[]){ 
            ABC abc=new ABC(); 
            System.out.println("abc.pro_i="+abc.pro_i); 
            abc.pub_i=10; 
            abc.show(); 
        } 
    } 
    不同包但是是子类: 
    import mytest.pack.ABC; 
    class DEF extends ABC{ 
    public static void main(String agrs[]){ 
        DEF def=new DEF(); 
        System.out.println(def.i); 
        def.i=10; 
        def.show();} 
    } 
    private不允许任何其他类存取和调用;
    当子类中的变量名与父类的相同,原来的变量被遮盖。 
    方法的覆盖(overriding)和重载(overloading)。子孙类中定义的方法和祖先类中某个方法同名、同参数行,则祖先类中的该方法被覆盖;方法的重载是指一个对象的多态性,即多个方法用相同的名称,但参数行不同。 
    final: 
        final在方法之前,防止该方法被覆盖; 
        final在类之前,标是该类不能被继承; 
        final在变量之前,定义一个常量。 
    static: 
    在变量或方法之前,表明它们是属于类的; 
    静态变量在各实例间共享,如果是public静态变量,则其它类可以不通过实例化访问它们; 
    静态方法称为类的方法,因此不用实例化即可调用(面向过程) 
    一个对象的方法可以访问对象的数据成员,尽管不属于方法的局部变量;一个类的方法只能访问自己的局部变量。 
    例:不正确的引用 
    class StaticError{ 
        String mystring="hello"; 
        public static void main(String args[]){ 
            System.out.println(mystring);} 
        } 
    错误信息:can’t make a static reference to nonstatic variable. 
    为什么不正确?只有对象的方法可以访问对象的变量。 
    解决的办法: 
        1) 将变量改称类变量 
    class StaticError{ 
        static String mystring="hello"; 
            public static void main(String args[]){ 
            System.out.println(mystring);} 
    } 
        2) 先创建一个类的实例 
    class NoStaticError{ 
        public static void main(String args[]){ 
            String mystring="hello"; 
            System.out.println(mystring);} 
        } 
    }


(责任编辑:笑虎)
关于本站 | 广告服务 | 联系我们 | 版权申明 | 强强联盟 | 投稿热线 | 网站地图 | 申请链接
Copyright ©2005-2006 Gimoo.net All rights reserved. 积木网 版权所有
E-mail:gimoohr@gmail.com 京ICP备05050695号