我们可以在静态方法中定义一个类,这个类其实就相当于方法中的变量,这个变量当然不能是股票交易数量股票交易数量接口,接口,static的。我们看下面的例子:
@Slf4j
public class StaticMethodInnerClass {
private 股票交易数量股票交易数量接口,接口,static String x = '股票交易数量股票交易数量接口,接口,static x';
public 股票交易数量股票交易数量接口,接口,static void print() {
class MyInner {
public void printOuter() {
log.info('x is ' + x);
}
}
MyInner i = new MyInner();
i.printOuter();
}
public 股票交易数量股票交易数量接口,接口,static void main(String[] args) {
StaticMethodInnerClass.print();
}
}
静态内部类
内部类
注意这里我们需要使用到两个new。
非静态方法的内部类
区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新SpringBootX系列教程:七天从无到有掌握SpringBoot-持续更新SpringX系列教程:满足你对Spring5的一切想象-持续更新java程序员从小工到专家成神之路-持续更新中,附详细文章教程
要访问到类的变量,需要实例化外部内,然后再实例化内部类:newInnerClass().newInner()。
这里的内部股票交易数量接口,接口一定是股票交易数量股票交易数量接口,接口,static的,因为股票交易数量接口,接口是不能实例化的,所以为了访问到股票交易数量接口,接口中的股票交易数量接口,接口,必须定义为股票交易数量股票交易数量接口,接口,static。如果不指定,则默认就是股票交易数量股票交易数量接口,接口,static。
静态方法内部类
因为股票交易数量股票交易数量接口,接口,static变量可以直接根据类名来存取,所以我们使用newStaticInnerClass.Inner()来实例化内部类。
注意,这里需要先实例化外部类才可以继续调用。
public class AnonymousClass {
public 股票交易数量股票交易数量接口,接口,static void main(String[] args) {
SortedSet sortedSet1 = new ConcurrentSkipListSet(new Comparator(){
@Override
public int compare(Object o1, Object o2) {
return 0;
}
});
SortedSet sortedSet2 = new ConcurrentSkipListSet((o1, o2) -> 0);
}
}
内部股票交易数量接口,接口
InnerInterface是指在股票交易数量接口,接口中定义的股票交易数量接口,接口。最常见的就是Map中的Entry了:
public interface Map {
interface Entry {
K getKey();
}
同样的非静态方法也可以定义内部类:
@Slf4j
public class MethodInnerClass {
private String x = 'non 股票交易数量股票交易数量接口,接口,static x';
public void print() {
class MyInner {
public void printOuter() {
log.info('x is ' + x);
}
}
MyInner i = new MyInner();
i.printOuter();
}
public 股票交易数量股票交易数量接口,接口,static void main(String[] args) {
new MethodInnerClass().print();
}
}
非静态内部类
我们在class内部定义一个股票交易数量股票交易数量接口,接口,static的class,如下所示:
@Slf4j
public class StaticInnerClass {
股票交易数量股票交易数量接口,接口,static class Inner {
void print() {
log.info('Inner class is: ' + this);
}
}
public 股票交易数量股票交易数量接口,接口,static void main(String[] args) {
StaticInnerClass.Inner inner = new StaticInnerClass.Inner();
inner.print();
}
}
我们看一个该内部股票交易数量接口,接口的实现:
public class MapImpl implements Map.Entry{
@Override
public Object getKey() {
return 0;
}
@Override
public Object getValue() {
return null;
}
@Override
public Object setValue(Object value) {
return null;
}
}
方法中的类,我们是无法在外部实例化的。
class中定义的类也可以是非静态的,如下所示:
@Slf4j
public class InnerClass {
class Inner {
void print() {
log.info('Inner class is: ' + this);
}
}
public 股票交易数量股票交易数量接口,接口,static void main(String[] args) {
InnerClass.Inner inner = new InnerClass().new Inner();
inner.print();
}
}
文章为作者独立观点,不代表观点