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

面向对象编程2

2015-12-29 23:05 267 查看
如果一个类始终只创建一个实例,则这个类成为单例类。把构造器用private修饰,提供一个public方法来调用构造器用于创建对象。且此方法需要用static修饰,因为调用该方法前还不存在对象,故只能通过类来调用,还需要定义一个成员变量来保存创建的对象,由于需要被上面的静态成员函数访问,故也需要用static修饰。

class Singleton

{

private static Singleton Instance;

private Singleton(){ }

public static Singleton getInstance()

{

if(Instance == null)

Instance = new Singleton();

return Instance;

}

}

final修饰变量时表示一旦变量获得了初始值以后就不可更改。修饰成员变量时,对于类变量,可以在静态初始化块赋值或者声明式给定默认值;对于实例变量,必须在初始化块、声明该变量或者构造器中给定初值。

final修饰局部变量时,既可以在定义时指定默认值,也可以不指定而后再赋值。但是一旦赋值就不可更改。

对于final修饰的引用变量,只保证这个引用变量所指向的地址不改变,但这个对象可以改变。

final修饰的变量满足以下三个条件时相当于宏变量:使用final修饰,定义该final变量时指定了初始值,该初始值在编译时可以确定(没有访问普通变量、调用方法)

final修饰的方法不可被重写,但可以被重载。

final修饰的类不可以有子类

不可变类是指创建该类的实例后,实例的field是不可改变的。

abstract修饰的类为抽象类,含有抽象方法的类为抽象类,是从多个类中抽象出来的模板,这个类只能被继承,abstract修饰的方法时表明必须由子类实现即重写,故abstract和final不能同时使用

抽象类是从多个类中抽象出来的模板,如果抽象的更彻底,那就得到一种更特殊的“抽象类”,接口。接口里不能包含普通方法,全都是抽象方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java