1.方法中创建类
类不仅可以在类的内部创建,也可以在方法和作用域中创建.
public class Parcel5 { public Destination destination(String s) { final class PDestination implements Destination{ private String label; private PDestination(String whereTo) { label = whereTo; } @Override public String readLabel() { return label;} } return new PDestination(s); } }
可以看到在Parcel5中的destination方法中创建了PDestination这个类,但是这个类只能在这个方法中使用,不能超出方法的作用域.
2.作用域中创建类
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("slip"); String s = ts.getSlip(); } } public void track() { internalTracking(true);} }
这个代码中, 在if语句中创建了TrackingSlip类,但是TrackingSlip只能在if的作用域中使用,超出作用域会报编译错误.
3.总结
某些场景下好用,定义内部类的时候如果在方法中定义,可以在不同的方法中定义相同名称的类,不用考虑重复,缺点是代码可能会变得复杂,不容易读懂.
通常情况下,一般用匿名内部类,很少在方法和作用域中定义类.
标签:String,作用域,创建,TrackingSlip,方法,public From: https://www.cnblogs.com/lishuaiqi/p/17092537.html