4.1面向对象的三个特性
封装性,多态性,继承性。
4.2 类
①类的编程风格:
类名、接口名用大驼峰命名法。
变量名、方法名用小驼峰命名法。
类名最好容易识别、见名知意。
②成员变量
成员变量的有效范围:成员变量在整个类内都有效,其有效性与其声明位置无关。
对成员变量的操作应该放在方法中。
编程风格:
一行只声明一个变量。
将成员变量的声明写在同一个地方。
③局部变量
局部变量只在方法内有效,而且其声明的位置有关。
方法的参数在整个方法内有效,方法的局部变量在其声明位置之后有效。
④区别成员变量和局部变量
如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏。想要调用被隐藏的成员变量,使用关键字this。
成员变量有默认值(其类型中的0),局部变量没有默认值。
4.3构造方法与对象的创建
①类的构造方法与它所在的类的名字完全相同,而且没有类型。一个类中可以有若干个构造方法。但必须保证它们的参数不同。
②使用new运算符合类的构造方法为声明的对象分配变量。
③空对象不能使用,因为它还没有任何“实体”。
④new运算符只能和类的构造方法进行运算,运算的最后结果是一个十六进制的数,这个数称为对象的引用。new运算符在计算出这个引用之前,首先给类中的成员变量分配内存空间,然后执行构造方法中的语句,然后计算出引用,对象诞生。
⑤对象的引用存在栈中,对象的实体存在堆中。
⑥垃圾收集机制:该机制会周期性地检测某个实体是否不再被任何对象所拥有,如果发现这样的实体,就释放该实体占有的内存。如果想立即进行垃圾收集操作,让System类调用gc()方法。
⑦JAVA中没有析构方法,通过垃圾收集机制释放没有被引用的实体占有的内存。
4.4类与程序的基本结构
①一个JAVA应用程序(也称为一个工程)由若干个类所构成。
②JAVA应用程序有一个主类(含有main方法),JAVA应用程序从主类的main方法开始执行。
③提倡在一个JAVA源文件中只编写一个类。
4.5 参数传值
①方法中参数变量是被调用变量的拷贝。
②对于基本数据类型的参数,向该参数传递的值的级别博客园高于该参数的级别。
③JAVA的引用型数据包括数组、接口、对象。
④当参数是引用类型时候,“传值”传递的是变量中存放的引用,而不是变量所引用的实体。
⑤可变参数:
可变参数是指在声明方法时不给出参数列表中从某项开始直到最后一项参数的名字和个数,但是这些参数的类型必须相同。可变参数使用“...”表示若干个参数,这些参数的类型必须相同。如public void f(int a,int ...x),可变参数必须为最后一个参数。参数代表可以通过下标运算来表示参数列表的具体函数,即x[0],x[1], ...,x[m-1]分别表示第一个至第m个参数。
4.7 实例成员和类成员
①成员变量可以细分为实例变量和类变量,方法也可以分为实例方法和类方法。用static来修饰类成员。
②实例变量和类变量的区别:
不同对象的实变量互不相同。
所有对象共享类变量。
通过类名直接访问类变量。
③实例方法和类方法的区别
类方法不可以调用实例变量,因为在类创建对象之前,成员变量还没有分配内存。 实例方法中不仅可以操作实例变量,也可以操作类变量。
如果一个方法不需要操作类中的任何实例变量,就可以满足程序需要,可以将方法设计为一个static方法。
4.9 this关键字
this是JAVA的一个关键字,表示某个对象。this可以出现在实例方法,但是不可以出现类方法中。
4.10 包
①包名的目的是有效地区分名字相同的类,不同JAVA源文件中的两个类名字相同时,可以通过隶属不同包来区分。
②package语句为JAVA源文件的第一条语句,如果源文件省略了package语句,源文件中所定义命名的类被隐含地认为是无名包的一部分,只要这些类的字节码被存放在相同的目录中,那么它们就属于同一个包,但没有包名。
4.11 import语句
①import语句写在package语句和类语句之间。
②系统自动为程序导入java.lang包(System类,Math类等)
③如果没用import 语句引入包中的类,也可以直接带有包名所有该类。
④引入整个包的类会增加编译时间,但是不会影响程序运行的性能。
⑤无名包在同一个文件夹中,则它们的类可以互相使用,无名包可以通过import语句调用有名包的类,但是有名包无法调用无名包的类。
4.12访问权限
①访问修饰符:private、protected、public。
②类中的实例方法总是可以操作类变量和实例变量,类方法总是可以操作该类的类变量,与访问限制符没有关系。
③不用private、public、protected修饰符修饰的成员变量和方法被称为友好变量和友好方法。
④友好变量和友好方法只能由同一个包的对象引用。
⑤不能用protected、private修饰类。
⑥访问级别(由高到低):public、protected、友好的、public