文章列表
导致程序运行不正常的突发情况称为异常
异常的架构
异常都属于Throwable类
Throwable类有两个子类:Error和Exception
Error类属于不可控的系统级异常,这不是程序本身的问题。这种异常不太容易发生,即使发 ...
- 2009-02-03 03:38
- 浏览 956
- 评论(0)
1.成员变量和静态方法不具有多态性,因为它们都是编译时绑定的。
当把一个子类的引用向上转型成其父类后,调用的是父类的域和静态方法,如在子类中声明与父类private和static相同名
的域和方法相当于新建,而且在子类中同时具体两者(且同名)
2.协变返回类型
当复写一个方法的时候,我们要求的返回类型,方法名,方法参数都需保持一致,这样才能达到覆盖的目的。
在JavaSE5中新增:重写方法的返回类型可以是被覆盖方法返回类型的子类。
这是因为可以向上转型的缘故。多态的表现啊。重新的方法的返回类型是多态的........
3. 多态,转型
转型的只是引用,向 ...
- 2009-02-02 17:43
- 浏览 966
- 评论(0)
类的复用基本是三种方式,组合,代理,继承。为了同样的复用目的,都是想在构建一个新类的时候加入一个已有类的对象。使用组合是直接在一个新类中new一个对象,使用继承其实也是通过构造方法中调用父类构造方法隐式的加入一个已有类的对象,所不同的是,使用组合更具灵活性,可以自主的选择需要加入什么对象,而使用继承则是强迫必须加入一个父类的对象。另外还可以使用代理,通过在新类中创建一个对象,并在方法中调用这个对象的方法,从而达到包装一个新方法的目的。尽管面向对象编程对继承极力强的,但在设计一个新类的时候,一般应有效选择组合(或者可能是代理),确实必要的时候才使用继承。实际上应该很少去继承一具体的类, ...
- 2009-02-02 17:12
- 浏览 1020
- 评论(0)
最近在看JAVA编程思想和JAVA核心技术,书确实是好书啊,但是知识太多太庞大太细化了,好多时候都是看了几遍才理
解,列子也做了才算勉强记得,并且很多东西牵扯到具体编程实现和经验,对于我这样从来没有编过程的人来说 ...
- 2009-02-02 01:21
- 浏览 658
- 评论(0)
//演示引用变量的多态特征
//以说明把接口和实现分离的多态特征增加了程序的可扩展性
import static com.futa.Print.*;
class Instrument {
void play(int n) {print("Instrument.play()"+n);}
String what() {return "Instrument";}
vo ...
- 2009-02-02 01:20
- 浏览 718
- 评论(0)
/*演示构造器的调用顺序
*一,调用基类构造器,反复递归到根,首先构造根
*二,按声明顺序调用成员的初始化方法
*三,调用导出类构造器主体;
*总结,必须首先调用父类的构造器保证继承下来的成员得到初始化;
* 然后按顺序执行成员的初始化方法,最后才能顺利调用导出类主体以便使用上面的成员
* 如果按照这一规则,那么就能够保证导出类的所有成员得到初始化
* 然而这样只是理想情况,重要的是知道构造器的调用顺序.
*/
import static com.futa.Print.*;
class Meal {
Meal(){print("M ...
- 2009-02-02 01:19
- 浏览 785
- 评论(0)
一些简单的类设计技巧,应用这些技巧可以使得设计出来的类更具有OOP的专业水准
1) 一定将数据设计为私有
重要的是:绝对不要破坏封装性。最好要保持实例域的私有性。
经验是,数据的表示形式很可能改变,但是 ...
- 2009-02-02 01:18
- 浏览 682
- 评论(0)
一些简单的类设计技巧,应用这些技巧可以使得设计出来的类更具有OOP的专业水准
1) 一定将数据设计为私有
重要的是:绝对不要破坏封装性。最好要保持实例域的私有性。
经验是,数据的表示形式很可能改变,但是 ...
- 2009-02-02 01:18
- 浏览 724
- 评论(0)
关于打包问题:
将类文件打包后,编译成功后。
如果把classpath设置为该包所在的根目录下,
并且如果该包的.java源文件也处于该包所在的根目录下;
那么在其它的类中import这个包的类时候会发生冲突,
会出现找不到类的错误。
此时只有两个办法:
1.把该源文件转移地方
2.删除该源文件
- 2009-02-02 01:17
- 浏览 617
- 评论(0)
特殊变量this
A this变量代表对象变量本身
B 当类中有两个同名变量的时候,一个属于类 (类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。
C 使用this可以简 ...
- 2009-02-02 01:16
- 浏览 667
- 评论(0)
方法参数:
java里使用值调用,方法得到的是所以参数值的一个拷贝。
1.一个方法不能修改一个基本数据类型的参数
2.一个方法可以改变一个对象参数的状态
3.一个方法不能让对象参数引用一个新的对象
也就是所,在java里只有传值调用
如果是基本数据类型的参数,那么传递的是这个变量的拷贝
如果是对象参数,那么传递是这个引用变量的拷贝,而不是对象的拷贝
只能改变这个对象的状态,而不能让这个对象参数引用一个新的对象。
- 2009-02-02 01:15
- 浏览 753
- 评论(0)
//演示内容如下
// 重载构造器
// 用this()调用另一个构造器
// 对象初始化块
// 静态初始化快
// 实例域初始化
import java.util.*;
public class ConstrutorTest
{
public static void main(String[] args)
{
Employee[] staff=new Employee[3];
staff[0]=new Employee("Harry",4000);
staff[1]=n ...
- 2009-02-02 01:11
- 浏览 774
- 评论(0)
首先,java是个编程语言。
其次,SUN推出了3个java平台,分别是J2SE,J2EE,J2ME。
然后,J2SE平台上其余两个的基础。针对J2SE提供了开发
工具,java development kits 也就是传说中的JDK,后面
更名为J2SDK,但是习惯还是称为JDK。
那么,来看看JDK当中到底为我们提供了什么东西。
根据目录层次来看,
bin目录:提供的是JDK的工具程序,比如javac java等。
demo目录:一些使用java编写好的范例程序
jre目录:JDK自己的JRE
lib目录:工具程序实际会使用到的java工具类
src.zip文档:java提供的API的源 ...
- 2009-02-02 01:08
- 浏览 1303
- 评论(0)