java - 看内部类教程看到一个public Destionation destionation(String str){} 这是什么鬼?
怪我咯
怪我咯 2017-04-18 09:03:26
0
1
786

教程在====下面,其中第二行
public Destionation destionation(String str) { 这句话是什么鬼,还有第三行是什么鬼?
Destionation 这是个类?还是个方法?
第三行那个类可以实现一个方法是什么鬼?好乱啊,有高手可以看懂到底什么意思吗?

============================================================================
网址在此http://wiki.jikexueyuan.com/project/java-enhancement/java-eight.html
四、局部内部类 四、局部内部类
有这样一种内部类,它是嵌套在方法和作用于内的,对于这个类的使用主要是应用与解决比较复杂的问题,想创
建一个类来辅助我们的解决方案,到那时又不希望这个类是公共可用的,所以就产生了局部内部类,局部内部类
和成员内部类一样被编译,只是它的作用域发生了改变,它只能在该方法和属性中被使用,出了该方法和属性就
会失效。
对于局部内部类实在是想不出什么好例子,所以就引用《Think in Java》中的经典例子了。
定义在方法里:

public class Parcel5 {
    public Destionation destionation(String str) {
        class PDestionation implements Destionation {
            private String label;

            private PDestionation(String whereTo) {
                label = whereTo;
            }

            public String readLabel() {
                return (label);
            }
        }

        return (new PDestionation(str));
    }

    public static void main(String[] args) {
        Parcel5 parcel5 = new Parcel5();
        Destionation d = parcel5.destionation("chenssy");
    }
}

定义在作用域内:

public class Parcel6 {
    private void internalTracking(boolean b) {
        if (b) {
            class TrackingSlip {
                private String id;

                TrackingSlip(String s) {
                    id = s;
                }

                String getSlip() {
                    return id;
                }
            }

            TrackingSlip ts = new TrackingSlip("chenssy");
            String string = ts.getSlip();
        }
    }

    public void track() {
        internalTracking(true);
    }

    public static void main(String[] args) {
        Parcel6 parcel6 = new Parcel6();
        parcel6.track();
    }
}
怪我咯
怪我咯

走同样的路,发现不同的人生

reply all(1)
小葫芦

1. PDestionation is an internal class
2. Internal classes can be defined inside methods
3. This class does not implement the destionation method. Pay attention to this line "return (new PDestionation(str));", this is the method. method body.

Attachment 1: PDestionation is a subclass of the Destionation class. It is recommended to read "Thinking in Java" first.
Attachment 2: Parcel is a package and Destionation is the destination. Each Parcel has its own Desctionation. English is very important!

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!