A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱泉 初级黑马   /  2012-7-7 09:51  /  3488 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邱泉 于 2012-7-8 00:29 编辑

最近看了毕老师的视频,有些地方看的深入了就有一些模糊,之前参与C++编程时,一般类的成员前面都有一个权限修饰符(public,protect,private),但是在接触了java后发现,这些类成员的前面也可以不加权限修饰符,那么我想请教一下各位前辈,如果前面不加任何权限修饰符的话,那么它在继承或者其他方面和以上3中权限有什么不同吗?

6 个回复

倒序浏览
Java类的成员前不加修饰符再Java里面也算是一种权限,默认权限.
1.加public ,权限最大,表示该成员变量和方法是共有的,能在任何一种情况下被访问;
2.加protect,权限比public小则必须在同一个包中才能被访问;
3.什么都不加,即default情况,权限比protect小比private大
4.加private,权限最小,只能在本类中被访问.
回复 使用道具 举报
如果不加访问修饰符,则自动认为是private是被保护的,不能再其他方法中进行调用,而只有在添加public访问修饰符才可以
回复 使用道具 举报
java中的权限修饰符(访问修饰符)有四个:公共的(public)、默认的、受保护的(protected)和私有的(private)
私有的(private):就是只能在该类中访问,不能在其他类中直接访问,即使是通过该类的实体类也不能直接访问,要访问则需要该类中提供的访问方法或取值方法。
默认的(default):就是没有修饰单词,也就是你说的这种,在没有其他三个修饰符修饰时,都被默认修饰。默认修饰的,除了在本类中可以被访问外,还可以被同一个包中的其他类访问。
受保护的(protected):受保护修饰的,可以被本类,同一个包的其他类以及不同包的其子类访问。
公共的(public):所有的类中都可以访问,不管是否在同一个包中。
希望可以帮到你。
回复 使用道具 举报
    权限访问修饰符

    public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。

              包外         子类          包内           类内
public      yes        yes          yes         yes
protected   no         yes          yes         yes
default     no         no           yes         yes
private     no         no           no          yes

     public :可以从其他类中访问

                                                   final修饰符
    final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
                                                            abstract修饰符
     abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。
                                                                   static修饰符
     static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例。

回复 使用道具 举报
最近看了毕老师的视频,有些地方看的深入了就有一些模糊,之前参与C++编程时,一般类的成员前面都有一个权限修饰符(public,protect,private),但是在接触了java后发现,这些类成员的前面也可以不加权限修饰符,那么我想请教一下各位前辈,如果前面不加任何权限修饰符的话,那么它在继承或者其他方面和以上3中权限有什么不同吗?
=================================
先回答你的问题,如果前面不加任何权限修饰符,则代表该成员的权限是默认权限,即default。default的权限定义为,在本类中可以被访问外,还可以被同一个包中的其他类访问。
其实问题很基础,google 能找到,毕老师视频也有讲,可能你还没看到。至于其他三种权限修饰符,前面的同学都说的很清楚了。

回复 使用道具 举报
谢谢各位,我基本知道是怎么回事了,主要以前学习C++时没有接触过这种默认形式,所以学习java时给我弄混淆了...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马