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

学习java基础教程收获三

2011-03-21 14:23 204 查看
本文主要总结在java基础教程中面相对象上、下两部视频中的一些淡忘的问题。

3.1.1 “==”运算符与equals()方法的区别

简单的理解就是 “equals()”是比较两个对象的引用是否相等,即堆中的引用是否相同。“==”是对变量的值比较。

3.1.2 构造函数

构造函数的理解:对类的一些必要参数进行初始化。

就象你购买一块豆腐,回家可以炒、切、扮、炖、煮——在后期给它任何它所支持的“属性”,但是在豆腐房里,别人做豆腐的就有
一套完整的流程来制作,而这个流程就是“构造函数”咯。它可以保证在豆腐出厂的时候,都是标准的四方型,而不是球的。。。。

如果说一个类中没有写构造函数,那么编译器会自动生成一个无参数的构造函数,倘若编写一个带参的构造函数,那么必须编写一个无参数的构造函数。

3.1.3 子类继承父类的问题

当父类中不包含无参数构造函数,子类须创建一个无参构造函数,并通过super()调用父类指定的构造函数,如子类通过super()调用无参构造函数,则父类必须创建无参构造函数。

当子类初始化时,优先调用父类无参构造函数。

注意:创建类的时候最好自己手动创建一个无参数构造含糊。

问:为什么

super(



)



this(



)

调用语句不能同时在一个构造函数中出现?

答:如果构造函数有this(),则调用其他的构造函数,其他的构造函数也会通过super()调用父类构造函数,如果当前构造函数也包含super()语句,则super()无任何意义。同时编译会报错。

问:
为什么

super(



)



this(



)

调用语句只能作为构造函数中的第一句出现?

答:构造方法优先调用this()。同时编译会报错。

子类中有父类中的函数同名时,则调用子类的函数。

若需要调用父类的函数时,则通过super.方法名()调用。

子类中方法的访问权限需大于等于父类中方法的访问权限。如父类中方法的public,则子类只能是public,同样父类的方法如果为private,则其他类和子类无法访问,子类无法继承父类的私有变量和方法,这样写法的形式无意义。

3.1.4 关于final关键字

成员变量前加了final关键字,则该变量无法对其赋值。

方法前面加了final关键字,则子类不能为其方法重写,只能继承父类的该方法。

方法或变量前面加了final关键字则为常量的生命。

final定义的常量不能被修改,只能一次赋值,即初始化时赋值,或在构造函数中对其赋值。

构造函数中不能对static的常量进行初始化,加了static使用 类名.常量名 进行使用,同时在这个常量需在定义时进行初始化。

3.1.5 抽象类与接口

抽象类中的方法不一定是抽象方法,但是抽象方法必须加abstract。若有一个方法是抽象方法,那么这个类则为抽象类。

子类必须覆重写有父类中的抽象方法才可以被实例化,否则这个子类仍旧是抽象类。

3.1.6 接口

接口是特殊的抽象类,是抽象方法和常量的集合,接口当中只能包含常量和方法的定义。

接口中的成员都是public访问类型

可以变相理解为,接口是抽象类的一种。

子类可以继承一个父类,但可以同时实现多个接口。

3.1.7 对象的类型转换

子类对象可以自动转换为父类。

父类需要强制转换为子类 例:(父类)子类

3.1.8 面相对象多态性

优点:不必为每个子类都编写对应的方法,提高代码复用性。派生类可以被基类的引用变量引用,即向后兼容,提高程序的可扩充性和可维护性。

3.1.9 匿名类

new 类名(){实现代码};

3.2.1 异常

ArithmeticException是Exception的子类,可以显示具体的异常详情。

e.printStackTrace();直接将异常输出。

异常会根据相应的异常进入对应的catch语句

catch语句中的异常类型有先后顺序,Exception类一定放到最后,否则前面无法的异常无法执行。

throws不一定是抛出异常,有时可以根据异常的特点,将对应的执行顺序跳转到其他位置,即程序跳转。

在try{}catch(){}finally{}中除使用System.exit(0)之外,其余情况下都执行finally{}的语句。

子类继承父类后,只能是抛出原有父类中的异常或父类中抛出异常类的子类,当然子类中也可以不抛出异常。

3.2.2 包

import——导包

package——设置包

3.2.3 访问控制

作用域 当前类 同一 package 子孙类 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

3.2.4 java命名习惯

1.包命名:全部字母小写:cn.package.bean

2.类命名:单词的首字母大写:SimpleBean

3.属性名称:第一个单词的首字母小写,之后每个单词的首字母大写studentName

4.方法命名:与属性命名相同:public
void sayHello()

5.常量命名:全部单词大写:final String DBDRIVER="zhangde"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: