黑马程序员技术交流社区
标题:
技术解答关于内部类,怎么去调用内部类,和内部类调用...
[打印本页]
作者:
探花
时间:
2014-3-28 20:51
标题:
技术解答关于内部类,怎么去调用内部类,和内部类调用...
本帖最后由 探花 于 2014-3-28 20:58 编辑
请高手分析如下代码,
<div class="blockcode"><blockquote>class Outside {
int num = 100 ;
public void method() {
final int x = 10;
class Inner {
public void method () {
System.out.println (num) ;
}
}
Inner i = new Inner();
i.method();
}
public static void show() {
class Inner {
public void print () {
System.out.println(num);
}
}
Inner i = new Inner();
i.print();
}
复制代码
请高手分析这个代码有没有错误,能不能访问外部的方法,主要是想调用外部的方法,最好能给写一下注释,有错的地方给改正一下。
为什么上面定义了Inner 下面的方法还能定义Inner .....求高手指导,,:handshake
作者:
yanzhendong
时间:
2014-3-28 20:53
求完整代码
作者:
你好!默默
时间:
2014-3-28 21:10
1.使用static可以声明一个内部类, 可以直接在外部调用
class Outer{ // 定义外部类
private static String info = "hello world" ; // 定义外部类的私有属性
static class Inner{ // 使用static定义内部类为外部类
public void print(){ // 定义内部类的方法
System.out.println(info) ; // 直接访问外部类的私有属性
}
};
public void fun(){ // 定义外部类的方法
new Inner().print() ; // 通过内部类的实例化对象调用方法
}
};
public class InnerClassDemo03{
public static void main(String args[]){
new Outer.Inner().print() ; // 调用外部类的fun()方法
}
};
复制代码
作者:
你好!默默
时间:
2014-3-28 21:11
2.不使用statc声明一个内部类 ,使外部调用
class Outer{ // 定义外部类
private String info = "hello world" ; // 定义外部类的私有属性
class Inner{ // 定义内部类
public void print(){ // 定义内部类的方法
System.out.println(info) ; // 直接访问外部类的私有属性
}
};
public void fun(){ // 定义外部类的方法
new Inner().print() ; // 通过内部类的实例化对象调用方法
}
};
public class InnerClassDemo04{
public static void main(String args[]){
Outer out = new Outer() ; // 外部类实例化对象
Outer.Inner in = out.new Inner() ; // 实例化内部类对象
in.print() ; // 调用内部类的方法
}
};
复制代码
作者:
你好!默默
时间:
2014-3-28 21:12
3.在方法中定义内部类 ,使外部调用
class Outer{ // 定义外部类
private String info = "hello world" ; // 定义外部类的私有属性
public void fun(final int temp){ // 定义外部类的方法
class Inner{ // 在方法中定义的内部类
public void print(){ // 定义内部类的方法
System.out.println("类中的属性:" + info) ; // 直接访问外部类的私有属性
System.out.println("方法中的参数:" + temp) ;
}
};
new Inner().print() ; // 通过内部类的实例化对象调用方法
}
};
public class InnerClassDemo05{
public static void main(String args[]){
new Outer().fun(30) ; // 调用外部类的方法
}
};
复制代码
作者:
探花
时间:
2014-3-28 21:37
你好!默默 发表于 2014-3-28 21:10
1.使用static可以声明一个内部类, 可以直接在外部调用
嗯 谢谢,很详细
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2