Java编程思想-1

最近一直在卡Android的源码,深感自己的欠缺,于是便从基础知识开始重新学习。《Java编程思想》这本书买来很久了,但是从来没怎么看过,今天看了第5章,感触颇多,像是被带进了一片新的天地,下面来总结下。那就按照书中的结构来总结一下,也便于复习和巩固。

1、用构造器来初始化

所有的类都需要初始化,Java中的初始化方法便是构造方法。构造方法的特点:
1)、与类名相同;
2)、没有返回值;
3)、可以重载,也就是说可以有多个构造方法;
4)、如果不创建构造方法,系统默认构建无参的构造方法。

2、方法重载

方法重载,同一个类中的有多个方法名相同的方法,如果他们的参数类型或者参数个数不同,则他们可以很好的共处。这里的同一个类,可以广义上来理解,把父类的方法也都看作自己的方法,就是说同样可以重载父类的方法,只要满足以上两个条件之一。方法重载的特点:

1)、同一个类中(包括父类的);
2)、方法名相同;
3)、满足参数个数不同或者参数类型不同。

注意一个问题:就是当存在不定参数的方法时,尽量避免使用方法重载。如果参数顺序不同,也同样看作是参数类型不同的条件。针对方法重载过程中出现一个方法是子类对象作为形式参数,另一个是父类对象作为形式参数。这时如果调用该同名方法时,子类对象那个作为实际参数,则会优先调用子类对象作为形式参数的同名方法。

3、默认构造器

类中的无参构造方法,如果不自己创建,系统会自动创建该无参构造方法,从而实现类的初始化。如果创建了有参构造方法,系统编译时就不会创建无参的构造方法了。

4、this关键字

this表示什么意思?他表示当前类的对象的引用。对的,他是个对象,因此不能通过它来调用类的静态属性和静态方法。在构造方法相互引用时,可以通过使用this关键字,在初始化属性值时可以使用该关键字。

4.1 static关键字

Static可以用在属性名前、方法或者类名之前。Static修饰的属性、方法和类,都可以直接使用类名来调用,无需创建类的实例对象。Static方法内部不可以使用非static的方法、属性和类,反之可以。

5、成员初始化

Java中的类的成员变量,在没有明确赋初始值的时候,系统都会给其赋默认值。基本的数据类型(八种),会赋值为0等;对于类的引用则会直接赋值为null。这是类的成员变量会默认赋初始值,对于方法内的变量则不会赋初始值,编译时就会出错。

5.1 指定初始化

对类的成员变量指定初始化值,或者通过调用方法来初始化值。类中的成员变量按照定义顺序被初始化,也就是说先定义的成员变量不能通过后定义的成员变量进行初始化。

6、构造器的初始化

当一个类的对象被创建时,也就是调用构造方法时,它的成员变量是什么时候初始化的?
类的内部,除了构造方法,还有成员变量(或者代码块)、静态成员(或者是静态代码块)以及构造方法。这些是怎样的一个初始化顺序呢?
在创建对象时,首先初始化静态成员(静态代码块),然后初始化成员变量,最后执行构造函数。注意静态变量只在第一次加载该类的时候执行,第二次就不再执行静态变量了。

7、可变参数列表方法

具有可变参数的方法,从根本上来讲它是把Object[]数组当做参数,因为是数组的引用,因此数组的长度在方法定义的时候是不确定的,因此此类方法是具有可变参数长度。只是在java发展过程中,使用“…”的方式表示可变参数列表,本质上还是个数组。对于该类方法慎用方法重载。

8、枚举类型

关键字enum,定义一组常量值。用在switch中很好。系统自动为枚举类型的每个常量设置一个ordinal()方法:给方法返回该常量在枚举类中的排序(从0开始);枚举类型有个静态方法static values()方法:返回该枚举类型的一个数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧阳小伙

您的打赏是我创作的:最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值