黑马程序员技术交流社区

标题: 新人零基础学习中,,,有个问题求解 [打印本页]

作者: 严国泽    时间: 2014-7-11 10:20
标题: 新人零基础学习中,,,有个问题求解
下面这段中的setAge()方法和getAge()方法中的public可以不写吗?
class Person
{
private int age;
public void setAge(int a){...}
public void getAge()
{
return age;
}
}
...
作者: 严国泽    时间: 2014-7-11 10:22
零基础学习java中。。。
作者: lancerjs    时间: 2014-7-11 10:34

访问修饰符

同一个类

同包

不同包,子类

不同包,非子类

private

默认(default)


protected


public



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

作者: 没有翅膀的小鸟    时间: 2014-7-11 10:42
同一楼上,你把成员变量私有化了,总要提供方法让外界能访问你的成员变量啊,所以才有set和get方法。
作者: 沐小北    时间: 2014-7-11 11:01
樓上正解!
作者: 严国泽    时间: 2014-7-11 12:44
lancerjs 发表于 2014-7-11 10:34
不加public其他包下的类就不能访问此方法了

包还没学到
作者: 严国泽    时间: 2014-7-11 12:47
没有翅膀的小鸟 发表于 2014-7-11 10:42
同一楼上,你把成员变量私有化了,总要提供方法让外界能访问你的成员变量啊,所以才有set和get方法。 ...

不写public也可以访问到吧
...
void setAge(){}
void getAge(){}
...
作者: 刘一博    时间: 2014-7-11 13:58
你可以不写,但是在后面就会学到访问修饰符,当不写的时候为默认访问修饰符,只有在同一个包中的其他类才可以调用的到,所以写不写要根据自己的需要来调整,如果你这个类就是不想其他包中的类调用get,set方法,就可以不写
作者: 月明星稀    时间: 2014-7-11 14:09
还是写上吧
作者: e644638045    时间: 2014-7-11 14:48
学习吧!!!!!
作者: 玉遥    时间: 2014-7-11 21:09
尽量写上,以后会遇到这方面的问题,不同包下的是不能通过被默认修饰符修饰的setXXX方法给成员变量赋值的
作者: 严国泽    时间: 2014-7-11 21:30
thanks all
作者: Doraemon    时间: 2014-7-11 21:51
可以结贴了
作者: ╮福尔摩斯`    时间: 2014-7-11 22:10
lancerjs 发表于 2014-7-11 10:34
不加public其他包下的类就不能访问此方法了

同意楼上
作者: 严国泽    时间: 2014-7-12 21:43
Doraemon 发表于 2014-7-11 21:51
可以结贴了

??怎么结??求教




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