您的位置:首页 > 编程语言 > Java开发

Java编程思想——第五章 清理与初始化

2017-09-15 17:55 267 查看
记载不是很全面,只记录了自己不太清楚的知识点。

如有问题,请指摘。

1. 关于函数重载

每一个重载的方法都有一个独一无二的参数列表(返回值不能作为区分函数重载的条件)


决定函数是否为重载的条件:

个数

参数的顺序

关于重载的参数列表中有基本数据类型

较小->较大 自动提升 char自动提升为int

f(long x);

int x = 0;

若果没有名为f,参数列表为int的型的重载话 -> f(x) 执行为 f(long x)。

较大->较小 需要类型转换

f(long x);

double x = 0;

f((long)x);

2. 构造方法

只有在类中,没有任何一个构造器的时候,才会自动构建一个空参的构造器。如果有任意的构造器,则不会自动生成构造器。


3. this关键字

this关键字作用->返回当前对象的引用。
注意:在构造器中可以使用this来调用自己的构造器,但是一个方法中只能使用一次。


4. static的含义

了解this关键字之后,就能更全面地理解static(静态)方法的含义。static方法就是没有this的方法。在static方法的内部不能调用非静态方法,反过来倒是可以。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正式static方法的主要用途。它很像全局方法。因为只需要通过类就可以访问到static方法和static域。


5. 关于类的初始化

类的成员变量一定会被初始化。


基本数据类型会给默认值,自定义类型会给null。

另外方法中的局部变量一定要初始化。

在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布与方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。


注意: 当有有静态数据时

初始化的顺序是先对静态对象(前提是得有对象被初始化时才会进行,就是说静态初始化只有在必要时刻才会进行),而后是“非静态”对象,然后才是构造器。

5. 数组的初始化

int[] a1= {1, 2, 3};
int[] a2;
a2 =a1;//只是复制了一个引用
a2[0] += 1;//a2[0] = 1;


如有任何问题,欢迎指摘。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: