请指教

解决方案 »

  1.   

    可以直接在内部类里面对外部类成员进行访问的,然后可以通过内部类的实例间接的访问外部类的成员。class Outer
    {
    private int i;
    class Inner
    {
    public void print()
    {
    i=10;
    System.out.println(i);
    }
    }
    }
    public class InnerTest
    {
    public static void main(String[] args)
    {
    Outer.Inner oi=new Outer().new Inner();
    oi.print();
    }
    }
      

  2.   

    给你个例子,你研究一下
    class Link{
    class Node{
    private int data; //保存节点的内容
    private Node next; //保存下一个节点
    public Node(int data){
    this.data = data;
    }
    public void add(Node node){
    if(this.next == null)
    this.next = node;
    else
    this.next.add(node);
    }
    /*public void print(){
    System.out.print(this.data + "\t");
    if(this.next != null)
    this.next.print();
    }*/
    public void print(){
    System.out.print(this.data + "\t");
    while(this.next != null){
    System.out.print(this.next.data + "\t");
    this.next = this.next.next;
    }
    }
    public boolean search(int data){
    if(this.data == data){
    return true;
    }
    else{
    if(this.next!=null){
    return this.next.search(data);
    }
    else{
    return false;
    }
    }
    }
    };
    private Node root;
    public void addNode(int data){
    Node newnode = new Node(data);
    if(this.root == null)
    this.root = newnode;
    else
    this.root.add(newnode);
    }
    public void printNode(){
    if(this.root!= null)
    this.root.print();
    }
    public boolean searchNode(int data){
    return this.root.search(data);
    }};
    public class LinkDemo{
    public static void main(String args[]){
    Link l = new Link();
    l.addNode(1);
    l.addNode(2);
    l.addNode(4);
    l.addNode(4);
    l.addNode(5);
    l.addNode(7);
    System.out.println("===========================");
    //l.printNode();
    System.out.println(l.searchNode(5));
    }
    }
      

  3.   

    简单地说,可以。
    访问外部类的实例成员用OuterClass.this.member这种方式访问(当内部类和外部类出现同名成员变量时尤其必要)。
    访问外部类的静态成员,直接用类名OuterClass.member就OK了。
      

  4.   

    考虑静态(static)内部类的话,回答则是不能调用非static成员。
      

  5.   

    可以的,使用OuterClass.this.成员变量名就可以
      

  6.   

    考虑到方法内部类(局部),貌似要求是final的。。