title: Why should Class names and Constructors names be the same
body: <p>So I've recently started to learn the basics of <em>Object Oriented Theory</em> and have been practicing this via java. My question is simple, 'Why should Class names and Constructors names be the same'?</p>
  
  <p>Now I've read through this question-> </p>
  
  <p><a href="https://stackoverflow.com/questions/6979612/why-constructors-will-always-have-same-name-as-of-class-and-how-they-are-invoked">Why Constructor will always have same name as of class and how they are invoked</a></p>
  
  <p>and even though this response makes sense, lower the use of keywords, it seems to me to make more sense to be able to name constructors differently and independently from the class. Now if I remember correctly (somewhat validated with a quick Google) the syntax goes like this: </p>
  
  <pre><code> className objectName = New constructorName(variables)
  </code></pre>
  
  <p>So my point is you've already named the class you want to make an object from, What's the point of calling the same name again for the constructor? You might as well just write </p>
  
  <pre><code> className objectName = New (vars); 
  </code></pre>
  
  <p>seeing as the two give exactly the same information.</p>
  
  <p>It seems to me that it would be far more semantic to be able to independently name your constructor in order to get a better idea what exactly it does e.g. </p>
  
  <pre><code>  thisClass thisObject = New thisConstructorMakesThis(vars)
  </code></pre>
  
  <p>Is there some documentation other than the response given in the link above that explains exactly why constructors and classes are named the same?</p>
  
  <p>Also I notice that the response doesn't even explicitly mention the consideration of <strong>dynamically named constructors</strong>, rather an <em>"explicit syntax"</em> which sounds more like an absolute constructor name.</p>