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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 严国泽 中级黑马   /  2014-7-11 10:20  /  2150 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面这段中的setAge()方法和getAge()方法中的public可以不写吗?
class Person
{
private int age;
public void setAge(int a){...}
public void getAge()
{
return age;
}
}
...

评分

参与人数 1技术分 +2 收起 理由
Doraemon + 2

查看全部评分

14 个回复

倒序浏览
零基础学习java中。。。
回复 使用道具 举报

访问修饰符

同一个类

同包

不同包,子类

不同包,非子类

private

默认(default)


protected


public



不加public其他包下的类就不能访问此方法了

评分

参与人数 1技术分 +1 收起 理由
Doraemon + 1

查看全部评分

回复 使用道具 举报
同一楼上,你把成员变量私有化了,总要提供方法让外界能访问你的成员变量啊,所以才有set和get方法。
回复 使用道具 举报
樓上正解!
回复 使用道具 举报
lancerjs 发表于 2014-7-11 10:34
不加public其他包下的类就不能访问此方法了

包还没学到
回复 使用道具 举报
没有翅膀的小鸟 发表于 2014-7-11 10:42
同一楼上,你把成员变量私有化了,总要提供方法让外界能访问你的成员变量啊,所以才有set和get方法。 ...

不写public也可以访问到吧
...
void setAge(){}
void getAge(){}
...
回复 使用道具 举报
你可以不写,但是在后面就会学到访问修饰符,当不写的时候为默认访问修饰符,只有在同一个包中的其他类才可以调用的到,所以写不写要根据自己的需要来调整,如果你这个类就是不想其他包中的类调用get,set方法,就可以不写

评分

参与人数 1技术分 +1 收起 理由
Doraemon + 1

查看全部评分

回复 使用道具 举报
还是写上吧
回复 使用道具 举报
学习吧!!!!!
回复 使用道具 举报
尽量写上,以后会遇到这方面的问题,不同包下的是不能通过被默认修饰符修饰的setXXX方法给成员变量赋值的
回复 使用道具 举报
thanks all
回复 使用道具 举报
可以结贴了
回复 使用道具 举报
lancerjs 发表于 2014-7-11 10:34
不加public其他包下的类就不能访问此方法了

同意楼上
回复 使用道具 举报

??怎么结??求教
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马