title: The C# Shorthand getters and setters
body: <p>How does the Setters and Getters in C# implement Encapsulation? I am not new when it comes to these setters and getters, I have background with programming, specifically java. in java you use setters and getters like this</p>
  
  <pre><code>public class Person {
      private String fName;
  
      public void setName(String someName) {
          fName = someName;
      }
  
      public String getName() {
          return fName;
      }
  }
  
  public class Test {
  
      public static void main(String[] args) {
          Person p = new Person();
  
          p.setName("Bob");
          System.out.println(p.getName());
      }
  }
  </code></pre>
  
  <p>And in C# Using Shorthand</p>
  
  <pre><code>public class Person {
      public string fName{ get; set;}
  }
  </code></pre>
  
  <p>How does the C# shorthand getters and setters implement encapsulation on this? how do I implement that C# code the same as the java code above? are there any restrictions regarding it?  and base from my observation, I can only use that "fName" if its set to public, specifically "public string fName{ get; set;}" but when it comes to private I cannot. but when i set it to private, I can no longer access it in other methods.</p>