* 访问控制:封装,将数据封装到类的内部,将算法封装到方法中 * 封装结果:存在但是不可见 * public :任何位置可见,修饰:属性,类,方法,内部类,跨包访问类。需要使用import语句导入。 * protected:当前包中可见,子类中可见。可以只修饰类的成员,只能在类体中使用,包括:属性,方法,内部类 * 默认的:当前包内部可见,就是没有任何修饰词,修饰:类,属性,方法,内部类等,在实际项目中很少使用。 * private:仅仅在类内部可见。修饰类的成员:属性,方法,内部类 * 默认类(包内类)的访问范围:当前包内部可见,不能在其他包中访问 * 类的访问受限 * 在企业项目中建议:所有类都是公用类。封装的类使用内部类 * java文件规则: * 1 一个java源文件中可以有多个类,但是只能有一个公用类 * 其他类只能是默认类(包中类)而且java的文件夹一定与公用类类名一致!如果没有公用类,可以和任何一个文件名一致 * 2 一般建议:一个文件一个公用类 * 一般不在一个文件中写多个类 * 私有的方法不能继承,也不能重写
package day03;
import day03.sub.Xoo;
public class Demo06 {
public static void main(String[] args) {
Yoo y = new Yoo();
System.out.println(y.a);
System.out.println(y.b);
System.out.println(y.c);
// System.out.println(y.d);//编译错误:有d但是不可见:封装
System.out.println(y.getD());//8
Xoo xoo = new Xoo();
System.out.println(xoo.a);
// System.out.println(xoo.b);//编译错,不在同一个包中,不可见
// System.out.println(xoo.c);//编译错
// System.out.println(xoo.d);//编译错
System.out.println(xoo.getD());//9
Too t = new Too();
t.test();
}
}
class Too extends Xoo{
public void test(){
System.out.println(super.a);
System.out.println(super.b);//保护的,子类中可见
// System.out.println(super.c);//不可见,默认范围:包中可见
// System.out.println(super.d);
}
}
/*
* 对于类的修饰可以使用public和默认方式。public修饰的类可以被任何一个类使用;默认访问控制的类只可以被同一个包中的类使用。
* protected和private可以用于修饰内部类。
*/
class Yoo{
public int a = 5;//公用的
protected int b = 6;//保护的
int c = 7;//默认的
private int d = 8;//私有的
public int getD(){return this.d;}
}