Если что-то не заключено в капсулу, вы открываете миру все мельчайшие мелкие детали. Это сложно, если не невозможно, изменить задним числом, потому что вы сломаете любой существующий код, который его использует.

public class Normal {
   public string name;     // name is public

   public String getName() {
        return name ;
   }

   public  String setName(String newName) {
         name = newName ;
         return name ;
   }

   public static void main(String args[]) {
      Normal normal = new Normal();
      normal.setName("suhail gupta");
      System.out.println( "My name is : " + normal.getName() );    
  }
 } 

класс начинается отсюда

public class Different {
   private string name;         // name is private

   public String getName() {
        return name ;
   }

   public  String setName(String newName) {
         name = newName ;
         return name ; 
   }

   public static void main(String args[]) {
      Different different = new Different();
      different.setName("suhail gupta");
      System.out.println( "My name is : " + different.getName() );    
  }
 } 

Первый класс имеетимя объявлен открытый и другой класс имеет имя объявленочастный , Оба класса выполняют одну и ту же работу, но имеют только спецификаторы доступа для разных имен. В настоящее время,

Мои вопросы есть?

Оба класса поддерживают инкапсуляцию? Если они делают, почемуprivate предпочтительнееpublic ? (Я сделал ту же работу, объявивимя публично, как я сделал объявлениеprivate)Какой класс легче поддерживать?С какими классами программисты будут чувствовать себя свободно во времяrefactoring ?Какnormal класс разные, отdifferent класс ?Когда они говорятUnencapsulated означает неизменяемый как оно здесь не меняется?

Ответы на вопрос(3)

Ваш ответ на вопрос