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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄达标 黑马帝   /  2011-12-12 17:24  /  2237 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 达达。 于 2011-12-12 17:40 编辑

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



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

加public和不加public区别在哪里?

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

6 个回复

倒序浏览
public 是公开的 可以在 本类中 同包中 子类中 不同包中访问
不加public  就是默认为friendly
可以在本类中 同包中访问 子类 和不同包就不能访问
回复 使用道具 举报
public表示公有。(公有类和共有方法)
类的public成员可以被该类的成员和非该类的成员访问。
例如,如果User类具有一个名为userName的公有成员,则该成员可以被User类的所有成员方法和所有其他类的成员方法访问。
如果不加public,则即类成员什么修饰符也没有的时候,默认就是friendly(C++中也有这个,叫:友元类)可见性修饰符了,那么,这个时候,
只有类本身和同在一个包中的类可以访问它。
一句话:加与不加,差别就在于本身对于其他类的可见性不同。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
t_mac 黑马帝 2011-12-12 17:36:42
板凳
本帖最后由 t_mac 于 2011-12-12 17:37 编辑

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

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

而此方法没加权限修饰  为默认权限 default 可以被同一包中的所有类访问
注意:如果子类没有在同一个包中,也不能访问

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
public          全部可见
protected       子类可见
default         包内可见
private         本类可见
加了public 包外面都可以调用这方法,
如果不加就会是default (不加默认是这个),这时只有同一个包里面的类才可以调用这方法。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
public       
可以从所有类访问       
protected       
可以被同一包中的所有类访问
可以被所有子类访问       
子类没有在同一包中也可以访问
private       
只能够被当前类的方法访问       

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

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
黄达标 黑马帝 2011-12-12 17:40:08
7#
原来如此,有默认的。。。。。。Thanks.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马