2-1 封装概念
1.概念
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
2.好处:
a.只能通过规定的方法访问数据
b.隐藏类的实例细节,方便修改和实现
3.封装的实现步骤
1.修改属性的可见性 private
2.创建getter/setter方法 用于属性的读写
3.在getter/setter方法中将爱如属性控制语句 对属性值的合法性进行判定
2-2 使用包管理类
1.包的作用
管理Java文件
解决同名文件冲突
2.定义包:package 包名
注:必须放在Java源程序的第一行 包名间可以使用"."号隔开
eg:com.imooc.MyClass
3.系统中的包
java..
java.lang.
java.util.
java.io.
4.包的使用
1.可以通过import关键字,在某个文件中使用其他文件的类.
import com.imooc.music.MyClass
2.java中命名规范是全部小写
3.使用的时候可以加载某个包下的所有文件
eg: com.imooc.*
也可以加载某个具体子包下的所有文件
eg: com.imooc.music.*
2-3 访问修饰符
可以修饰属性和方法的访问范围

2-4 this关键字
1.this关键字代表当前对象
this.属性操作当前对象的属性
this.方法 调用当前对象的方法
2.封装对象的属性的时候,经常会用this
2-5 内部类
- 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类
- 内部类的方法可以直接访问外部类的所有数据,包括私有的数据
- 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便
内部类可分为以下几种:
1成员内部类
2静态内部类
3方法内部类
4匿名内部类
2-6 Java中的成员内部类
1、 Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等
2、 Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响,如直接访问 Outer 类中的私有属性a
3、 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );
4、 编译上面的程序后,会发现产生了两个 .class 文件
其中,第二个是外部类的 .class 文件,第一个是内部类的 .class 文件,即成员内部类的 .class 文件总是这样:外部类名$内部类名.class
另外,友情提示哦:
1、 外部类是不能直接使用内部类的成员和方法滴

可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。
2、 如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。如:

运行结果:

