<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="generator" content="made with love by dartdoc 0.8.2">
  <title>operator == method - PublicClassExtendsPrivateClass class - ex library - Dart API</title>
  <!-- required because all the links are pseudo-absolute -->
  <base href="../..">

  <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro|Roboto:500,400italic,300,400' rel='stylesheet' type='text/css'>
  <link rel="stylesheet" href="static-assets/prettify.css">
  <link rel="stylesheet" href="static-assets/css/bootstrap.min.css">
  <link rel="stylesheet" href="static-assets/styles.css">

  <meta name="description" content="API docs for the operator == method from the PublicClassExtendsPrivateClass class, for the Dart programming language.">
  <link rel="icon" href="static-assets/favicon.png">

  <!-- Do not remove placeholder -->
  <!-- Header Placeholder -->
</head>

<body>

<div id="overlay-under-drawer"></div>

<header class="container-fluid" id="title">
  <nav class="navbar navbar-fixed-top">
    <div class="container">
      <div class="row">
        <div class="col-sm-12 contents">
          <button id="sidenav-left-toggle" type="button">&nbsp;</button>
          <ol class="breadcrumbs gt-separated hidden-xs">
            <li><a href="index.html">test_package</a></li>
            <li><a href="ex/ex-library.html">ex</a></li>
            <li><a href="ex/PublicClassExtendsPrivateClass-class.html">PublicClassExtendsPrivateClass</a></li>
            <li class="self-crumb">operator ==</li>
          </ol>
          <div class="self-name">operator ==</div>
          <form class="search navbar-right" role="search">
            <input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
          </form>
        </div> <!-- /col -->
      </div> <!-- /row -->
    </div> <!-- /container -->
  </nav>

  <div class="container masthead">
    <div class="row">
      <div class="col-sm-12 contents">
        <ol class="breadcrumbs gt-separated visible-xs">
          <li><a href="index.html">test_package</a></li>
          <li><a href="ex/ex-library.html">ex</a></li>
          <li><a href="ex/PublicClassExtendsPrivateClass-class.html">PublicClassExtendsPrivateClass</a></li>
          <li class="self-crumb">operator ==</li>
        </ol>
        <div class="title-description">
          <h1 class="title">
            <span class="kind">method</span> operator ==
          </h1>
        </div>
        <ul class="subnav">
          <li><a href="ex/PublicClassExtendsPrivateClass/operator_equals.html#source">Source</a></li>
        </ul>
      </div> <!-- /col -->
    </div> <!-- /row -->
  </div> <!-- /container -->

</header>

<div class="container body">
  <div class="row">

  <div class="col-xs-6 col-sm-3 col-md-2 sidebar sidebar-offcanvas-left">
    <h5><a href="index.html">test_package</a></h5>
    <h5><a href="ex/ex-library.html">ex</a></h5>
    <h5><a href="ex/PublicClassExtendsPrivateClass-class.html">PublicClassExtendsPrivateClass</a></h5>

    <ol>
    
    
    
      <li class="section-title"><a href="ex/PublicClassExtendsPrivateClass-class.html#constructors">Constructors</a></li>
      <li><a href="ex/PublicClassExtendsPrivateClass/PublicClassExtendsPrivateClass.html">PublicClassExtendsPrivateClass</a></li>
    
      <li class="section-title inherited">
        <a href="ex/PublicClassExtendsPrivateClass-class.html#instance-properties">Properties</a>
      </li>
      <li class="inherited"><a href="ex/PublicClassExtendsPrivateClass/hashCode.html">hashCode</a></li>
      <li class="inherited"><a href="ex/PublicClassExtendsPrivateClass/runtimeType.html">runtimeType</a></li>
    
      <li class="section-title inherited"><a href="ex/PublicClassExtendsPrivateClass-class.html#operators">Operators</a></li>
      <li class="inherited"><a href="ex/PublicClassExtendsPrivateClass/operator_equals.html">operator ==</a></li>
    
      <li class="section-title inherited"><a href="ex/PublicClassExtendsPrivateClass-class.html#instance-methods">Methods</a></li>
      <li class="inherited"><a href="ex/PublicClassExtendsPrivateClass/noSuchMethod.html">noSuchMethod</a></li>
      <li class="inherited"><a href="ex/PublicClassExtendsPrivateClass/test.html">test</a></li>
      <li class="inherited"><a href="ex/PublicClassExtendsPrivateClass/toString.html">toString</a></li>
    </ol>

  </div><!--/.sidebar-offcanvas-->

  <div class="col-xs-12 col-sm-9 col-md-8 main-content">

    <section class="multi-line-signature">
        <span class="returntype">bool</span>
        <span class="name ">operator ==</span>(<wbr><span class="parameter" id="==-param-other"><span class="parameter-name">other</span></span>)
    </section>

    <section class="desc markdown">
      <p>The equality operator.</p>
<p>The default behavior for all <code>Object</code>s is to return true if and
only if <code>this</code> and <code>other</code> are the same object.</p>
<p>Override this method to specify a different equality relation on
a class. The overriding method must still be an equivalence relation.
That is, it must be:</p><ul><li>
<p>Total: It must return a boolean for all arguments. It should never throw
   or return <code>null</code>.</p></li><li>
<p>Reflexive: For all objects <code>o</code>, <code>o == o</code> must be true.</p></li><li>
<p>Symmetric: For all objects <code>o1</code> and <code>o2</code>, <code>o1 == o2</code> and <code>o2 == o1</code> must
   either both be true, or both be false.</p></li><li>
<p>Transitive: For all objects <code>o1</code>, <code>o2</code>, and <code>o3</code>, if <code>o1 == o2</code> and
   <code>o2 == o3</code> are true, then <code>o1 == o3</code> must be true.</p></li></ul>
<p>The method should also be consistent over time, so equality of two objects
should not change over time, or at least only change if one of the objects
was modified.</p>
<p>If a subclass overrides the equality operator it should override
the <code>hashCode</code> method as well to maintain consistency.</p>
    </section>
    
    <section class="summary source-code" id="source">
      <h2><span>Source</span> </h2>
      <pre><code class="prettyprint lang-dart">bool operator ==(other) =&gt; identical(this, other);</code></pre>
    </section>

  </div> <!-- /.main-content -->

</div> <!-- row -->
</div> <!-- container -->

<footer>
  <div class="container-fluid">
    <div class="container">
      <p class="text-center">
        <span class="no-break">
          test_package 0.0.1
        </span>
        &bull;
        <span class="no-break">
          <a href="https://www.dartlang.org">
            <img src="static-assets/favicon.png" alt="Dart" title="Dart" width="16" height="16">
          </a>
        </span>
        &bull;
        <span class="copyright no-break">
          <a href="http://creativecommons.org/licenses/by-sa/4.0/">cc license</a>
        </span>
      </p>
    </div>
  </div>
</footer>

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="static-assets/typeahead.bundle.min.js"></script>
<script src="static-assets/prettify.js"></script>
<script src="static-assets/script.js"></script>
<!-- Do not remove placeholder -->
<!-- Footer Placeholder -->

</body>

</html>
