找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 720|回复: 4

学习CORE JAVA时的总结

[复制链接]
发表于 2008-8-17 02:07:59 | 显示全部楼层 |阅读模式
有点懒,没有全打上,都是手写稿~
 楼主| 发表于 2008-8-17 02:08:51 | 显示全部楼层
标识符

1.         标识符必须由字母、货币符号($)或连字符(如下划线“_”)开头。标识符不能以数字开头。

2.         标识符的第一个字符之后可为字母、货币字符、连字符或数字的任意组合。

3.         在实际中,对标识符可以包含的字符数没有限制。

4.         不能把Java关键字用做标识符。

5.         Java中的标识符是区分大小写的。

关键字列表

astract

boolean

break

byte

case

catch

char

class

const

continue

default

do

double

else

extends

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

strictfp

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

assert

enum

 

 

 

 

Sun Java编码约定

1.         类和接口:首字母应该大写,如果名称由多个单词组合而成,则各单词的首字母应该大写(即camelCase格式)。类名通常应选择以名词表示。

2.         方法:首字母应该小写,然后应使用正常的camelCase规则。此外,名称通常应该是动词—名词对。

3.         变量:与方法一样,应使用camelCase格式,并以小写字母开头。Sun建议使用有意义的短名称,这听上去对我们非常有力。

4.         常量:Java通过用static和final标识变量来创建常量。应该使用大写字母作为其名称,并以下划线作为分隔符。

JavaBean属性命名规则

1.         如果属性不是布尔类型,那么getter方法的前缀必须是get。

2.         如果属性是布尔类型,那么getter方法的前缀应为get或is。

3.         setter方法的前缀必须是set。

4.         为了完成getter或setter方法的名称,可以把属性名的首字母更改为大写,然后添加合适的前缀(get、is或set)。

5.         setter方法签名必须标识为public,并且具有void返回类型和一个标识属性类型的参数。

6.         getter方法签名必须标识为public,不带参数,并且具有一个返回类型,此类型与该属性的setter方法的参数类型匹配。

JavaBean侦听器命名规则

1.         用于向事件源“注册”侦听器的侦听器方法名必须使用前缀add,后接侦听器类型。

2.         用于删除(“未注册”)侦听器的侦听器方法名必须使用前缀remove,后接侦听器类型(使用与注册方法相同的规则)。

3.         要添加或删除的侦听器类型必须作为参数传递给方法。

源文件声明规则

1.         每个源代码文件只能有一个public类。

2.         注释可以出现在源代码文件中的人一行的开始和结尾处。

3.         如果文件中有一个public类,那么文件名必须与public类的名称匹配。

4.         如果类是包的一部分,那么package语句必须位于源代码的第一行,并且出现在任何import语句之前。

5.         如果由import语句,他们必须位于package语句和类声明之间。如果没有package语句,那么import语句必须位于源代码文件中的第一行。如果没有package或import语句,那么类生命必须位于源代码的第一行。

6.         import和package语句适用于源代码文件中的所有类。换句话说,不可能在一个文件中声明多个类并使它们位于不同的包中,或者使用不同的导入语句。

7.         一个文件可以具有多个非公共类。

8.         不含非公共类的文件可以具有与该文件中的任何类都不匹配的名称。

修饰符

1.         访问修饰符:public、protected、private

2.         非访问修饰符:strictfp、final、abstract

可以标识为static的有:

1.         方法;

2.         变量;

3.         嵌套在另一个类(而不是一个方法)内的类;

4.         初始化块;

不可以标识为static的有:

1.         构造函数;

2.         类(除非他们是嵌套的);

3.         接口;

4.         方法局部的内部类;

5.         内部类方法和实例变量;

6.         局部变量;

关于引用要记住的几点

1.         引用变量只能是一种类型,一经声明,就永远不能再改变(尽管它引用的对象可以改变);

2.         引用是一个变量,因此它可以重新赋予其他对象(除非该引用被声明为final);

3.         引用变量的类型决定了可以在该变量引用的对象上调用的方法;

4.         引用变量可以引用具有与所声明引用相同类型的任何对样,或者——这是重要的一点——它可以引用所声明类型的任何子类型;

5.         引用变量可以声明为类类型或接口类型。如果将变量声明为接口类型,它就可以引用实现该接口的任何类的任何对象。

重写的规则

1.         参数列表必须与被重写方法的参数列表完全匹配;

2.         返回类型必须与超类中原始被重写方法中声明的返回类型或其子类型相同;

3.         访问级别的限制性一定不能比被重写方法的强;

4.         仅当实例方法被子类继承时,它们才能被重写;

5.         重写发发可以抛出任何非检查的(运行时)异常,无论被重写方法是否声明了该异常;

6.         重写方法一定不能抛出新的检查异常或比被重写方法声明的检查异常更广的检查异常;

7.         重写方法能够抛出更少或更有限的以经常;

8.         不能重写标识被final的方法;

9.         不能重写标识为static的方法;

10.     如果不能集成一个方法,则不能重写它。

重载的规则

1.         被重载的方法必须改变参数列表;

2.         被重载的方法可以改变返回类型;

3.         被重载的方法可以改变访问修饰符;

4.         被重载的方法可以声明新的或更广泛的检查异常;

5.         方法能够在同一个类中或者在一个子类中被重载。

重载方法和重写方法之间的区别

 

重载方法

重写方法

参数列表

必须修改

一定不能修改

返回类型

可以修改

除协变式返回外,不能修改

异常

可以修改

可以减少或删除。一定不能抛出新的或更广泛的检查异常

访问

可以修改

一定不能执行更严格的限制(可以降低限制)

调用

引用类型决定选择哪个重载版本(根据声明的参数类型),这发生在编译时。被调用的实际方法仍然时发生在运行时的虚拟方法调用,但是编译器一经知道所调用方法的签名。因此,在运行时,参数匹配已经明确,只是还不知道该方法所在的实际类

对象类型(换句话说就是堆上实际实例的类型实例的类型决定选择哪个方法,这发生在运行时)

 

构造函数规则

1.         构造函数可以使用任何访问修饰符;

2.         构造函数名称必须与类名匹配;

3.         构造函数一定不能有返回类型;

4.         让方法具有与类型相同的名称时合法的(但是愚蠢的),但是,这并不能使它成为一个构造函数;

5.         如果不在类代码中输入构造函数,编译器将自动生成默认构造函数;

6.         默认构造函数总是无参数构成函数;

7.         如果想要无参数构造函数,并且一经把任何其他构造函数输入到类代码中,编译器将不提供无参数构造函数(或任何构造函数);

8.         每个构造函数必须调用重载构造函数(this())或调用超类构造函数(super())作为其第一条语句,尽管我们记得this调用可以有编译器插入;

9.         如果确实输入了一个构造函数(不是依赖编译器生成的默认构造函数),而没有输入对super()的调用,编译器则将插入一个对super()的无参数调用,作为构造函数的第一条语句;

10.     对super()的调用可以是无参数调用,或者也可以包含传递给超类构造函数的参数;

11.     无参数构造函数不必是默认(即编译器提供的)构造函数,尽管默认构造函数总是无参数构造函数;

12.     除非在超类构造函数运行之后,负责不能调用实例方法或访问实例变量;

13.     只能把静态变量和方法作为调用super()或this()的一部分进行访问;

14.     抽象类具有构造函数,这些构造函数总是当具体子类被实例化时才被调用;

15.     接口没有构造函数。接口不是对象继承的一部分;

16.     调用构造函数的唯一方法是从另一个构造函数内部进行调用。

默认构造函数

1.         默认构造函数具有与类相同的访问修饰符;

2.         默认构造函数没有任何参数;

3.         默认构造函数包含对超类构造函数(super())的无参数调用;

 

回复

使用道具 举报

 楼主| 发表于 2008-8-17 02:09:30 | 显示全部楼层

重载方法和重写方法之间的区别

 

重载方法

重写方法

参数列表

必须修改

一定不能修改

返回类型

可以修改

除协变式返回外,不能修改

异常

可以修改

可以减少或删除。一定不能抛出新的或更广泛的检查异常

访问

可以修改

一定不能执行更严格的限制(可以降低限制)

调用

引用类型决定选择哪个重载版本(根据声明的参数类型),这发生在编译时。被调用的实际方法仍然时发生在运行时的虚拟方法调用,但是编译器一经知道所调用方法的签名。因此,在运行时,参数匹配已经明确,只是还不知道该方法所在的实际类

对象类型(换句话说就是堆上实际实例的类型实例的类型决定选择哪个方法,这发生在运行时)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表