一.关键字static
静态(static)变量又叫类变量,即可以在类的所有实例中共享的变量。可以从类的任
何实例访问static变量,且static变量不是private时,它可以从类的外部访问,若从类的外部访问static变量,则不需要类实例,可直接通过类名指向它。
静态方法,又叫类方法,可以在没有类实例的情况下调用类中方法,可以使用类名来指向,而不是通过实例来指向。静态方法只能访问其自身参数和静态变量,不能访问非静态变量。非静态变量只存活于实例中,只能通过实例引用来访问。静态方法不能重写成非静态。
当类被装载时,静态代码块只执行一次,不同代码块按它们在类中的顺序来执行。
总结:
1) static方法和数据是因为类和该类的所有实例而存在,可以通过一个类实例或类本身来访问。
2) 非静态数据仅限于实例,只能通过该实例的非静态方法来访问。非静态数据定义实例对象之间互不相同的特点,非静态方法在其作用范围内根据非静态数据对每个对象实例产生的行为是互不相同的。
二.关键字final
final类是不能在分成子类的类。
Final方法是不能再重写的方法。如果方法具有不能被改变的实现,且对于对象的一般状态是关键的,则必须声明该方法为final。被声明为private或static的方法被自动的声明为final,因为动态联编在上述两种情况下都不能应用。
变量被声明为final,结果是变量变成常量。
三.抽象类
声明方法的存在而不是实现,以及带有对已知行为的方法的实现,这样的类通常叫做抽象类。用abstract声明一个抽象类。
不能创建一个抽象类的实例,但可创建一个变量,其类型是一个抽象类,并使其指向具体子类的一个实例。程序中也不能有抽象构造函数或抽象静态方法。
抽象类的子类为其父类中的抽象方法提供实现,否则也是一个抽象类。
四.接口
接口的作用:
1)声明方法,期望一个类或更多的类来实现该方法。
2)揭示一个对象的编程接口,而不是揭示类的实际程序体。(当将类的一个包输送到其他开发程序中时非常有用)。
3)捕获无关类之间的相似性,而不强迫类关系。
4)描述“似函数”对象,它可以作为参数被传递到在其他对象上调用的方法中。他是“函数指针”(c和c++语法)的一个安全的替代方法。
接口中所有方法都是抽象的,且只能定义“static final”成员变量。
优点是,当类定义只能扩展出单个类时,他能实现所需的多个接口。
例子:
interface SayHello
{
void printMessage();
}
class SayHelloImpl implement SayHello
{
void printMessage()
{
System.out.println(“Hello”);
}
}
一个类可以实现多个接口,在类声明的末尾以逗号依次排列。
五.访问控制
1.变量和方法有四个修饰符,类只能用public和default修饰。
2.访问性标准
修饰符 同类 同包 子类 通用性
public 是 是是 是
protected 是 是 是
default 是 是
private 是
六.“==”和equals()方法
Object类的equals()方法和“==”一样都是等值比较,对于比较的两个引用指向同一个对象时才返回true.
String. Data .File类以及包装类都重写了equals()方法。
七.内部类
即嵌套类,允许一个类的定义被放到另一个类的定义中。优点是允许将逻辑上同属性的类组合到一起,并在一个类中控制另一个类的可视性。
(内部类是个难点,我还暂且没搞明白)
八.包装类
Java中为了提高效率,不把简单数据类型看作对象,故有了包装类:
九.集合是一个对象组,单个对象是他的元素。集合处理许多对象类型。
十.矢量类(Vector类)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />