鸟哥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设计模式之一 单例设计模式

设计模式: 设计模式的概念首先来源于其它行业:建筑业,在早起建房子的时候,肯定是经验缺乏、显得杂乱无序的,这就会造成很多问题,在行业发展过程,通过不断的经验积累,前辈们针对这些问题提出了合理解决方案...
  • qq_32736689
  • qq_32736689
  • 2016年04月07日 08:29
  • 2190

Shell脚本初步学习-鸟哥Linux私房菜基础学习篇

Shell脚本对于Linux下的系统管理员和运维的人来说很重要。最近看了一下Shell脚本,为了系统地学习一下Shell脚本,我看了一下《鸟哥的Linux私房菜基础学习篇》第三版,其中的第13章讲了一...
  • ccf19881030
  • ccf19881030
  • 2013年05月14日 23:19
  • 4835

跟鸟哥学Linux之——Linux规划!!

前期学习了一些关于51单片机的部分知识,只是对单片机有了一个初步的认识,和最基本的操作,做了一定的思维转向,对硬件的工作原理有了一个直观感受和体验,之下转向对了Liunx的一个入门级学习,希望可以从最...
  • u013030441
  • u013030441
  • 2015年04月05日 21:24
  • 1284

《鸟哥的Linux私房菜--基础学习篇》 读书笔记

############################################ 第20章 启动流程、模块管理与Loader 2015.04.11 ######################...
  • ustc_summer
  • ustc_summer
  • 2015年04月11日 17:59
  • 1285

Java单例设计模式(实现Java的一个类只有一个对象)

单例设计模式的定义:单例设计模式是一种软件设计模式,在它的核心包含一个称为单例类的核心类。核心便是希望一个类只有一个对象。...
  • linux_language
  • linux_language
  • 2016年07月25日 15:22
  • 1028

继承与派生(面向对象)

1.继承与派生的概念:在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”,新建的类称为“派生类(d...
  • Huangweilan
  • Huangweilan
  • 2016年10月27日 14:47
  • 186

鸟哥的Linux私房菜基础篇第三版 -- 目录

服务器端使用的OS,Linux是最最常用的,所以,日常的部署、排查问题,就不可避免的与Linux打交道,日积月累,对Linux就有了多多少少的了解。 反过来,再系统的从头开始,读一本关于Linux基础...
  • puma_dong
  • puma_dong
  • 2015年09月27日 22:49
  • 1923

面向对象_继承案例和继承的好处与继承的弊端

/* 继承概述: 把多个类中相同的内容给提取出来定义到一个类中。 如何实现继承呢? java提供了关键字:extends 格多: //class 子类名,派生类名 extends 父类名,基类名,...
  • L1585931143
  • L1585931143
  • 2016年09月26日 22:13
  • 901

Java设计模式菜鸟系列(六)单例模式建模与实现

单例模式保证了一个类只有一个实例,且提供一个访问全局点的方式,更加灵活的保证了实例的创建和访问约束。系统中只有一个实例,因此构造方法应该为私有 饿汉式:类加载时直接创建静态实例;懒汉式:第一次需要时才...
  • JAVE_LOVER
  • JAVE_LOVER
  • 2014年10月05日 00:44
  • 2444

《鸟哥的linux私房菜:基础学习篇》第3版 - 核心笔记(全)

一、什么是 Linux 呢?! • Unix 与 Linux 的历史     o Multics 系统:由 Bell(贝尔实验室)、MIT(麻省理工学院)与 GE(美国通     用电器)合作开发的...
  • sinat_36184075
  • sinat_36184075
  • 2017年05月19日 23:50
  • 544
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:鸟哥Java学习之单例设计、继承-面向对象
举报原因:
原因补充:

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