null是一个特殊常量,可以用来为任意类型的变量赋值,常量null不是一个对象,而是一种对象地址占位符,测试一个变量是否等于null时,需要使用==和!=,而不能使用equals方法;不能用被初始化为null的变量来调用其方法,否则会得到一条错误消息“null指针异常”
静态方法和静态变量是完全属于类的方法和变量,使用它们不需要使用对象调用
Java要求程序的main方法是静态的
不能在静态方法内直接调用非静态方法,只能够通过new一个自身类型的变量,再通过这个变量来间接调用非静态方法;能直接调用非静态方法
和实例变量一样,静态变量通常是私有的,而且应该只能通过访问变量和设置方法进行读取和修改;静态变量也被称为类变量,注意不要将“类变量”和“类类型的变量”混淆
一个Java工程可以在多个类中定义main方法,将一个带有main方法的类作为普通的类来创建对象时,会忽略main方法
预定义的Math类提供了很多标准的数学方法,使用时它会自动提供,这些方法都是静态的
round:四舍五入 ceil:上取整floor:下取整
Math类中定义了静态常量PI和E(近似2.72)
Java对基本类型和类类型进行了区分,为了使得两者统一起来,Java为每个基本类型提供了一个包装(wrapper)类
这些包装类分别是IntegerLong Float Double Character
这些包装类分别定义了各自类型的最大值MAX_VALUE和最小值MIN_VALUE,parseXX方法,toString方法…
Integer n = new Integer(42);// Integer n =42;
int i = n.intValue();//int i = n;
double d = Double.parseDouble(“199.9”);
装箱(boxing):从基本类型值到与其相关的包装类对象之间的类型转换
拆箱(unboxing):与装箱相反
自顶向下的设计(top-downdesign)或分治(divide andconquer)
可以认为构造器调用返回了一个对象的引用,即认为它返回了对象的内存地址
可以在构造器中使用其他方法
没有任何参数的构造器被称为默认构造器
即使一个类将其一个类成员对象设置为私有,也不提供修改这个成员对象的方法,这个成员对象仍然有可能被修改,详细看P282
克隆方法可以生成一个对象的精确副本,解决对象赋值其实是赋引用在某些方面带来的弊端
包是组织和命名一组相关类的方法,用于组织和使用类库
包是一些被组织起来放在一个目录,并被赋予了一个包名的类的集合,每个类定义的文件处都会包含package Package_Name
如果想使用general.utilities包中的类,就应该将下列代码放在起始处
import general.utilities.*;//*意味着导入了这个包中所有的类,也可以用类名来取代*,从而只从包中导入单个类
包名告诉编译器的是包含包中那些类的目录的路径名,它说明了一个相对路径名,它假设从类路径基本目录开始,沿着包名给出的子目录路径
比如包general.utilities位于 “基本目录”\ general\utilities中
每次设置或者修改类路径变量时,都一定要将当前目录包含在内
包还可以用于解决名字冲突,即用于处理两个不同的包中为不同的类使用了相同的名字
如果处理名字冲突的时候指定了包名,就不需要导入包了
创建按钮(button)与创建标签类似,但按钮也有一些新的东西,比如可以将一个动作与按钮关联起来,这样点击按钮时,applet就会执行某些动作,图标(icon)就是一幅小图片
需要对按钮编程,这种编程通过事件驱动编程这种编程技术来实现
当对象产生一个事件时,就称这个对象激发了事件,每个可以激发事件的对象,都可以有一个或者多个侦听器对象,程序员要决定哪些对象是可能激发一个事件给定对象的侦听器对象(侦听器注册),被激发的事件会被自动发送到侦听器对象中去,侦听器对象中有一些方法,用来说明侦听器收到各种类型的事件时会发生什么事情,这些处理事件的方法叫做事件处理程序
applet通常没有构造器,是非典型类,初始化动作将放在一个特殊方法init中
侦听器注册在init方法中进行,相同类型的组件的多个事件的处理放到一个方法中进行
不同类型的组件需要不同类型的侦听器来处理它们激发的事件
动作侦听器是ActionListener类型的对象,ActionListener不是类而是属性,这些属性被称为接口
要成为一个动作侦听器,类必须有一个名位actionPerformed的方法,这个方法有一个ActionEvent类型的参数,这是ActionListener接口所需的唯一一个方法
基本上可以将任何一种标准格式的图片都可以作为一个图标的素材
可以将图标加到一个标签上
每个标签和几乎其他所有的组件中都有一个名为setVisible的方法,可以通过它将组件在可见或者不可见两种状态中转换
“不可见”意味着按钮不在那里,而不仅仅是看不见
作者yucan1001