黑马程序员技术交流社区
标题:
关于接口和内部类的问题?
[打印本页]
作者:
sbeeqnui1987
时间:
2012-6-10 22:31
标题:
关于接口和内部类的问题?
本帖最后由 sbeeqnui1987 于 2012-6-17 17:31 编辑
把一个private内部灯的成员定义为public或private是没什么区别的,那能不能忽略private内部类中实例变量和方法的修饰词public或private呢?
请教各位前辈```
作者:
邹颖
时间:
2012-6-10 22:41
内部类是可以使用private权限的.内部类可以正常调用其它类的方法,属性,也可以正常调用其它类的方法,属性。别人也正常调用它,它的使用和普通的方法,属性一致,我们就把它看做一个普通的方法就行了.. 这是我的理解, 我也是刚学没多久。
作者:
赵兵锋
时间:
2012-6-10 23:10
public class Main{
public static void main(String[] args) {
//T.Y y = t.new Y();Y不可见
T t = new T();
//t.TI();TI方法不可见
t.h();//此方法可见,这个方法里调用了这里不可见的内部类的方法,这就是内部类!
}
}
class T{
public void h(){
Y y = new Y();
y.f();//对此类来说,内部类永远可见
y.ff();//内部类中的私有方法在这里也可见
}
private void TI(){
System.out.println("T private function");
}
private class Y{
public void f(){
System.out.println("dd");
}
private void ff(){
System.out.println("fff");
}
}
}
//输出:
//dd
//fff
复制代码
作者:
李海
时间:
2012-6-10 23:31
注意使用范围,如果是缺省内部类,只能在包内使用使用,如果是public或者是protected则可以在任何子类内使用内部类,如果是public static,则内部类上升为外部类。如果仅仅只是static则内部类上升为包内范围的外部类。 所以 内部类是可以被外面其他类所使用的 既然可以被其他类所使用 你当然可以使用private来保护你内部类中的东西 结论:不能忽略内部类中的private 和 public
作者:
胡卿
时间:
2012-6-11 00:40
class Outer
{
private int size=3;
class Inner
{
void dostuff()
{
size++;
System.out.println(size);
PrivateText t= new PrivateText();
t.dostuff1();
}
}
private class PrivateText//内部类使用了private权限之后,内部类中的成员不可以被其他类进行访问
{
private void dostuff1()//加上private与不加private,一个内中的类部类均可以进行访问,所以这里private是可以忽略的
{
size++;
System.out.println(size);
}
}
}
class TextInner
{
public static void main(String[] args)
{
Outer o=new Outer();
Outer.Inner oi=o.new Inner();
oi.dostuff();
}
}
/*输出结果为
4
5
*/
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2