鸟哥Java学习之单例设计、继承-面向对象

原创 2016年06月01日 20:41:49
    1.若类中的方法都是静态的,该类是不需要创建对象的。可以将工具类中的构造函数私有化private,保证不让其他成员创建对象。
    这种情况比较少,多为一些工具类,主函数直接类名调用,大多数类都封装了特有数据,所以不需静态。

    2.单例设计模式:保证一个类在内存中的对象唯一性。
    必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
思路:
1.不允许其它程序用new创建对象,即私有化构造函数
2.在该类中创建一个本类实例
3.对外提供一个公共方法让其他程序可以获取该对象

//饿汉式
class singel //类已加载对象已存在
{
    private static singel s = new singel();/*加private不暴露成员,不让别人修改,屏蔽作用*/
    private singel(){}
    pubilc static singel getinstance()/*成员可控*/
    {
        return s;
    }
}
//懒汉式,多线程技术访问时,有安全隐患,可能无法保证对象唯一性。
class singel2 //类加载无对象,调用方法才会创建,延迟加载形式。
{
    private static singel2 s = null;/*加private不暴露成员,不让别人修改,屏蔽作用*/
    private singel2(){}
    public static singel2 getinstance()/*成员可控*/
    {
        if(s==null)s = new signel2();
        return s;
    }
}
    3.继承:
    让类与类间产生关系,为第三个特征多态提供前提。格式:extends 类名
    java中支持单继承(一个子类只能有一个直接父类),不直接支持多继承(多个直接父类),因为多个父类中有相同成员会产生调用的不确定性。但对c++中的多继承机制进行改良。支持多层(重)继承。
    当要使用一个继承体系时,查看该体系的顶层类,了解基本功能,创建体系中的最子类对象,完成功能的使用。
    注意:A(子类)继承B(父类)

    子父类中成员变量特点:
        同名时用super区分父类,与this用法相像。但this代表一个本类对象的引用,super代表一个父类空间。子类不能直接访问父类私有内容,父类可以提供方法。

    子父类中成员函数特点:
        覆盖:子父类中成员函数一样。函数两个特性,重载:在同一个类中,overload。
        注意:子类方法覆盖父类时,子类权限必须大于等于父类;静态只能覆盖静态或被静态覆盖。
        覆盖的应用:当对一个类进行子类的扩展时,子类需要保留父类的功能声明,但是要定义子类中该功能的特有内容时,就是用覆盖操作完成。如对手机应用升级,在该类中添加功能,但又要保留原有功能,此时定义一个子类继承,再在该子类中修改。

    子父类中构造函数特点:
        子类的构造函数中第一行(因为父类中初始化动作要先完成)必须先有一个默认的隐式语句,super()。访问子类构造函数父类参数为空的构造函数也运行了。
        子类实例化(创建对象):子类中所有构造函数都会访问父类参数为空的构造函数。如果父类中没有定义空参数构造函数,那么子类的构造函数必须用super明确要调用父类中哪个构造函数。

    4.继承弊端:打破封装性。
    final关键字:修饰类,方法,变量。修饰的类不允许继承;修饰的方法不可以被覆盖;修饰的变量是一个常量(大写,单词与单词见用下划线),只能赋值一次。
        
    
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JAVA学习笔记(一)---单例模式与继承

//java单例模式 class Single { //创建本类对象 private static Single s = new Single(); //构造函数私有化 private Singl...

JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖

JAVA之旅(六)—— java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有23种设计模式,解决某一问题最有效的方法单例设计模式 ...

对Java对象的理解以及对“抽象类”继承的理解

Java对象: 在现实中任何存在的事物都可以看做是对象,通过其属性进行分类,比如生物种类包括动物等不同种类,动物又分猫科,猫科又分特定物种 而每一个对象又是单独个体,就好像世界上不存在两个...

简单理解Java中的类、对象、继承、多态等概念

一、类 类(class)是构造对象的模版或蓝图。简单理解就是“人类”是一个类,小明这个人就是该类的一个对象。由类构造(construct)对象的过程成为创建类的实例(instance)。 二、对象...

Java中包含继承关系时对象的创建与销毁顺序详解(附源码)

前言        通过组合和继承方法来创建新类时,永远不必担心对象的清理问题,子对象通常都会留给垃圾回收器进行处理。如果确实遇到清理的问题,那么必须用心为新类创建dispose()方法(在这里我...

Java基础06天 学习笔记_面向对象(Static静态,JavaAPI,单例设计模式)

01 Static 关键字 多个对象中存在共同数据: 如 country (CN) 没有必要没一个对象都有一个CN, 浪费空间   static String country = "...

【学习笔记06】java面向对象-main方法、单例设计模式

main函数的详解: public : 公共的。 权限是最大,在任何情况下都可以访问。 private   原因: 为了保证让jvm在任何情况下都可以访问到main方法。 static:...

黑马程序员-------- java面向对象 封装、构造函数、this static关键字、单例设计

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------                          ...

java面向对象(十三) 构造方法私有化(单例与多例设计模式)

将构造方法使用private封装.范例1:

Java基础--面向对象(静态、main函数、帮助文档、单例设计模式)

静态static(静态)关键字 static关键字: 用于修饰成员:成员变量和成员函数(只能修饰成员不能修饰局部); 被修饰后的成员具备以下特点: 随着类的加载而加载,随着类的消失而消失,生命周期...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)