黑马程序员技术交流社区

标题: 关于pubilc [打印本页]

作者: 黄达标    时间: 2011-12-12 17:24
标题: 关于pubilc
本帖最后由 达达。 于 2011-12-12 17:40 编辑

public void show ()
{
    System.out.println("name=" + name);
}



void show ()
{
    System.out.println("name=" + name);
}

加public和不加public区别在哪里?
作者: 吴上储    时间: 2011-12-12 17:34
public 是公开的 可以在 本类中 同包中 子类中 不同包中访问
不加public  就是默认为friendly
可以在本类中 同包中访问 子类 和不同包就不能访问
作者: 郝亚平    时间: 2011-12-12 17:35
public表示公有。(公有类和共有方法)
类的public成员可以被该类的成员和非该类的成员访问。
例如,如果User类具有一个名为userName的公有成员,则该成员可以被User类的所有成员方法和所有其他类的成员方法访问。
如果不加public,则即类成员什么修饰符也没有的时候,默认就是friendly(C++中也有这个,叫:友元类)可见性修饰符了,那么,这个时候,
只有类本身和同在一个包中的类可以访问它。
一句话:加与不加,差别就在于本身对于其他类的可见性不同。
作者: t_mac    时间: 2011-12-12 17:36
本帖最后由 t_mac 于 2011-12-12 17:37 编辑

public void show ()
{
    System.out.println("name=" + name);
}
此方法被public修饰 说明此方法是共有的,对外暴露的,能在任何情况下被访问

void show ()
{
    System.out.println("name=" + name);
}

而此方法没加权限修饰  为默认权限 default 可以被同一包中的所有类访问
注意:如果子类没有在同一个包中,也不能访问
作者: zoufan7410    时间: 2011-12-12 17:38
public          全部可见
protected       子类可见
default         包内可见
private         本类可见
加了public 包外面都可以调用这方法,
如果不加就会是default (不加默认是这个),这时只有同一个包里面的类才可以调用这方法。

作者: 胡遇潮    时间: 2011-12-12 17:38
public       
可以从所有类访问       
protected       
可以被同一包中的所有类访问
可以被所有子类访问       
子类没有在同一包中也可以访问
private       
只能够被当前类的方法访问       

缺省
无访问修饰符默认就是friendly       
可以被同一包中的所有类访问       
如果子类没有在同一个包中,也不能访问


作者: 黄达标    时间: 2011-12-12 17:40
原来如此,有默认的。。。。。。Thanks.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2