* 访问控制:封装,将数据封装到类的内部,将算法封装到方法中
* 封装结果:存在但是不可见
* 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;}
}
