• Java基础入门(十)之单例模式、Object类常用方法以及内部类


    一、   单例设计模式

    1. 定义:通过只建立一个对象,解决问题
    2. 实现:

           (1)为了避免其他程序过多的创建对象 先禁止其他程序创建该类对象私有化构造方法

           (2)为了让其他程序可以访问到该对象 只好在本类中 创建一个对象

           (3)为了方便其他程序对自定义对象的是访问 可以对外提供一个方法

           3.步骤:

           (1)           私有化构造方法

          (2)           创建本类对象

          (3)           对外暴漏一个可以访问该类的方法

           4.特点:

        (1)单例类只能有一个实例。

        (2)单例类必须自己创建自己的唯一实例。

         (3)单例类必须给所有其他对象提供这一实例。 懒汉式 和 饿汉式

           5.好处

         (1)           频繁创建对象,销毁对象,造成系统想能下降,浪费内存

         (2)           饿汉式:类一加载,就创建本类对象   懒汉式:调用方法,才创建本类对象

    二、   Object类的常用方法

    1. 定义: Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
    2. 常用方法

    (1)           boolean equals(Object obj)   指示其他某个对象是否与此对象“相等”。

    默认Object类中的equals方法 比较的是对象的地址值是否相同

    ==符号 和 equals()方法的区别****

    ==是一个比较运算符,既可以比较基本数据类型,又可以比较引用数据类型   基本数据类型比较的是值,引用数据类型,比较的是地址值

    equals 只能比较引用数据类型

    在方法重写前和==一样比较地址值,重写后比较的是对象中的属性值   一般都需要重写

    (2)           int  hashCode()   返回该对象的哈希码值

    如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。

    如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。

    规定:  当 obj1.equals(obj2) 为true的时候 obj1.hashCode() == obj2.hashCode();

         当obj1.equals(obj2) 为false的时候 obj1.hashCode() != obj2.hashCode();

    (3)           String  toString()    返回该对象的字符串表示

    三、   内部类 

    1. 定义: 将一个类 定义在另一个类的里面 里面的那个类就叫做内部类 内置类 嵌套类
    2. 分类:成员内部类 静态内部类 局部内部类 匿名内部类

    2.1成员内部类

    2.1.1创建成员内部类对象格式:

    外部类名.内部类名 变量名 = new 外部类对象.new内部类对象 Outer.Inner oi = new Outer().new Inner();

    2.1.2特点:

    (1)内部类可以直接访问外部类中的成员 包括私有的

    (2)外部类如果想要访问内部类的成员 必须创建内部类对象

    (3)当类为内部类的时候 可以使用private修饰 因为它是外部类的一个成员

    (4)当内部类被私有化后 就不能在外部其他类中创建该类对象了

    2.2静态内部类(当内部类被static修饰后)

    2.2.1格式:

    外部类名.内部类名 变量名 = new 外部类名.内部类对象Outer_02.Inner_02 oi = new Outer_02.Inner_02();

    2.2.2      特点:

    如果内部类被静态修饰了 那么只能访问外部类中被静态修饰的成员 访问出现了局限性

    2.3局部内部类

      2.3.1 特点:

    放在类中方法中的类    在局部内部类 访问它所在的局部变量时 只能访问被final修饰的常量

    2.4匿名内部类(内部类的简写模式)

    2.4.1 前提条件:

     内部类必须继承一个类或者实现一个接口

    2.4.2      格式:

                 new 类或者接口名(){

                       重写方法

                 }.调用重写的方法();

    2.4.3注意事项:

    匿名内部类中定义的方法 最好不要超过3个

  • 相关阅读:
    HTML <iframe> 标签
    HTML <tr> 标签
    HTML <img> 标签的 border 属性
    jQuery ajax ajax() 方法
    CSS padding 属性
    SQL Server CONVERT() 函数
    CSS overflow 属性
    HTML <input> 标签
    Java动态代理一——动态类Proxy的使用
    Java拆箱装箱小结
  • 原文地址:https://www.cnblogs.com/xue-er/p/9449979.html
Copyright © 2020-2023  润新知