为什么我不能将此(SectionsPagerAdapter)类设为私有?

时间:2018-02-13 17:25:40

标签: java android class

private class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount () {
        return 4;
    }

}

我正在进行Head First Android教程,我不能将这个课程设为私有?在android上有不同的方法吗?我应该为超类添加参数吗?

1 个答案:

答案 0 :(得分:1)

在自己的文件中自包含的类不能声明为private,因为它们无法被任何其他类访问,从而有效地使它们变得无用。一个类可以被声明private的唯一时间是它是否是另一个类的孩子,例如

public class ClassA {
    private ClassB myInstance = new ClassB();

    private class ClassB {
        public ClassB() {}
    }
}

在这种情况下,ClassB仅对ClassA可见,并且只能由ClassA使用。如果您的类在其自己的文件中是自包含的,则它可以拥有的最大隐私是package-private,即没有说明符:

package com.example.myPackage;

class ClassB {
    ClassB() { }
}

在这种情况下,ClassB只能由com.example.myPackage包中包含的任何其他类访问和实例化。