一、面向对象特征
封装、继承、多态
二、封装
1》定义:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
2》好处:
a、只能通过规定的方法访问数据
b、隐藏类的实例细节,方便修改和实现
3》步骤:
a、修改属性的可见性---设为private
b、创建getter/setter方法---用于属性的读写(不一定使用getter/setter方法,可以使用普通方法给变量赋值,但不标准)
c、在getter/setter方法中加入属性控制语句---对属性值的合法性进行判断
三、使用包管理Java中的类
1》包的作用(类似于文件夹)
管理Java文件,解决同名文件冲突
2》定义包: package 包名
注:必须放在Java源程序的第一行
包名间可以使用" . "号隔开 eg:com.qps.MyClass
3》系统中的包
java . (功能) . (类)
java . lang . (类) 包含java语言基础的类
java . util. (类) 包含java语言中各种工具类
java . io . (类) 包含输入、输出相关功能的类
4》包的使用
1》可以通过import关键字,在某个文件使用其他文件中的类。
import com.imq.music.MyClass
2》Java中,包的命名规范是全小写字母拼写
3》使用的时候不但可以加载某个包下的所有文件 eg:com.qos.*
也可以加载某个具体子包下的所有文件 eg: com.qps.music.*
四、Java中的访问修饰符
访问修饰符:可以修饰属性和方法的访问范围
五、Java中的this关键字
1》this关键字代表当前对象
this.属性 操作当前对象的属性
this.方法 操作当前对象的方法
2》封装对象的属性的时候,经常会使用this关键字
六、Java中的内部类
1》定义:内部类(Inner Class)就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。
2》作用:
a、内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类
b、内部类的方法可以直接访问外部类的所有数据,包括私有的数据
c、内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便
3》内部类分类:
. 成员内部类
. 静态内部类
. 方法内部类
. 匿名内部类
4》成员内部类
内部类中最常见的就是成员内部类,也成为普通内部类。
成员内部类的使用方法:
1》Inner类定义在Outer类的内部,相当于Outer类的一个成员变量的位置,Inner类可以使用任意访问控制符
2》Inner类中定义的方法可以直接访问Outer类中的数据,而不受访问控制符的影响,如直接访问Outer类中的私有属性
3》定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去new 一个内部类对象。即:内部类 对象名 = 外部对象类.new 内部类();
4》编译程序后,成员内部类的.class文件总是:外部类名$内部类名.class
注:1.外部类是不能直接使用内部类的成员和方法的,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。
2.如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。
5》静态内部类
静态内部类是static修饰的内部类,这种内部类的特点是:
1.静态内部类不能直接访问外部类的非静态成员,但可以通过new 外部类().成员 的方式访问
2.如果外部类的静态成员与内部类的成员名称相同,可通过 “ 类名 . 静态成员”访问外部类的静态成员;
如果外部类的静态成员与内部类的成员名称不相同,可通过“ 成员名 ”直接调用外部类的静态成员
3.创建静态内部类的对象时,不需要外部类的对象,可以直接创建 : 内部类 对象名 = new 内部类() ;
6》方法内部类
方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。
注:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和static修饰符。