黑马程序员技术交流社区
标题:
关于编写类-已解决
[打印本页]
作者:
周世阳
时间:
2012-8-14 16:15
标题:
关于编写类-已解决
本帖最后由 周世阳 于 2012-8-17 02:15 编辑
FileOne:
public class Test {
class Test1 {
public String get() {
return ("any difference?");
}
}
}
FileTwo:
public class Test {}
class Test1 {
public String get() {
return ("any difference?");
}
}
如上,FileOne里面的Test2类写在Test1里面,FileTwo将两个类放在一个文本里,第一个叫内部类,可是跟第二个有什么区别么?如果将两个类分别写在两个文本呢?有和两个类在一个文本里有什么区别?
作者:
梁志仲
时间:
2012-8-14 16:29
类是对有相同属性和行为的一类事物的描述,如果事物内部还有事物,则用内部类来描述。
而将两个类分开写,则这两个类之间是没有直接联系的。也就是说,两种表述,主要是表达的关系不同。
两个类写在一个文本中,则只有一个类可以用public修饰,两个类是属于同一个包的,但有public修饰的类可以被别的包中的对象访问,而没有public修饰的类,只能被该包中的对象访问。
两个类分别写在两个文本中,则两个类都可以用public修饰,这样不管是否在同一个包中,都可以互相访问。
主要是访问权限的区别。
作者:
黑马_许芸
时间:
2012-8-14 16:58
内部类一般是供这个类的内部使用,如果外面需要使用的时候,一般定义成一个不相关的外部类。
如果写在一个文本中,则只有这个定义成文件名的这个类可以用public修饰,两个类是属于同一个包的,但只有public修饰的类可以被别的包中的对象访问,
没有public修饰的类,只能被该包中的对象访问。
两个类分别写在两个文本中,则两个类都可以用public修饰,在不同的包中,都可以访问。
作者:
黑马张旭明
时间:
2012-8-14 20:32
我也来补充下,第一个FileOne中的内部类Test1可以直接访问外部类Test中的成员(FileTwo不能),而第二个FileTwo中的Test1如果要访问Test中的非静态成员必须建立Test的对象,Test访问Test1也一样。
如果将两个类写在两个文本中有个特殊的地方--protect权限,如果Test1中有成员被protect修饰了的话,Test是不能访问的,除非继承了Test1。
作者:
黑马张旭明
时间:
2012-8-14 20:33
子貌似大了点。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2