public,private,protected区别
Java中的访问控制
表1-1
[table]
|可见/访问性|在同一类中|同一包中|同一包子类中|不同包子类中|不同包中
|public| yes| yes| yes| yes| yes
|protected| yes| yes| yes| yes| no
|默认| yes| yes| yes| no| no
|private| yes| no| no| no| no
[/table]
(1) 在java中有public、protected、private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类、变量等前没加显示的可见性修饰符,那它就是package级别的。如果在类的定义中没有指定package,那么java会把它放在缺省包中,一般来说这个缺省的包就是当前目录。
(2) 在子类中的方法如果重载了父类的方法,那么该方法的可见级别应更底或者相同,如父类中的方法是public,那么子类中方法必须是public。
(3) 在java中,一般来说,变量成员最好是private,对它们的访问可以通过public的方法,在这些方法中可以做些控制以保证数据的一致性。这些方法名一般以get和set做为前缀。
Java中的访问控制
表1-1
[table]
|可见/访问性|在同一类中|同一包中|同一包子类中|不同包子类中|不同包中
|public| yes| yes| yes| yes| yes
|protected| yes| yes| yes| yes| no
|默认| yes| yes| yes| no| no
|private| yes| no| no| no| no
[/table]
(1) 在java中有public、protected、private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类、变量等前没加显示的可见性修饰符,那它就是package级别的。如果在类的定义中没有指定package,那么java会把它放在缺省包中,一般来说这个缺省的包就是当前目录。
(2) 在子类中的方法如果重载了父类的方法,那么该方法的可见级别应更底或者相同,如父类中的方法是public,那么子类中方法必须是public。
(3) 在java中,一般来说,变量成员最好是private,对它们的访问可以通过public的方法,在这些方法中可以做些控制以保证数据的一致性。这些方法名一般以get和set做为前缀。