Warum deklarieren Sie Variablen private in einer Klasse?

Leute ich werde anfangen, indem Sie sich entschuldigt, als ich bin sicher, dies wurde bereits beantwortet und anderswo - ich kann einfach nicht finden, eine Antwort, erklärt, dass es in einer Weise, die ich verstehen! Ich mache einen MSc conversion-Kurs und es gibt einige Elementare Grundlagen, die ich bin immer noch am kämpfen mit diesem, so auch hier - warum macht eine variable private ist besser.

Sagen, ich habe eine Java-Klasse namens Person, mit der print-Methode. Ich könnte es schaffen und es als solches definieren:

public class Person
{
    public String name;
    public String telephoneNumber;

    public void print()
    {
       System.out.println(name + " " + telephoneNumber);
    }
}

Dann in einer main-Klasse, könnte ich den folgenden code schreiben:

class testPerson
{
  public static void main(String[] args)
  {
    Person test;
    test = new Person();

    test.name = "Mary";
    test.telephoneNumber = "01234 567890";

    test.print();
  }
}

Wenn ich dies Tat, den test.print(); erzeugen die Ausgabe:

mary 01234 567890

Aber ich weiß, gilt dies als schlechte Programmierung. Variablen sollten private innerhalb einer öffentlichen Klasse, da wir nicht wollen, um Menschen zu erlauben, zu sehen, wie diese Informationen gespeichert sind, oder in der Lage sein, um die Informationen zu Bearbeiten, ohne Genehmigung.

So, jetzt, ich werde Bearbeiten Sie die Klasse "Person" zu erklären, die zwei Strings private und hinzufügen von get-und set-Methoden, etwa so:

private String name;
private String telephoneNumber;

public void setName (String name)
{
  this.name = name;
}

public void getName()
{
  return name;
}

//same code for telephone methods.

Nun in der main-Klasse, würde ich ändern, die Methoden der Einstellung, name und Telefon an die folgenden:

mary.setName("Mary");
mary.settelephoneNumber("01234 567890");

Nach der Vorlesung die Notizen, die ich verfolge, das ist effizienter (obwohl könnte noch effizienter, indem eine Person () - Methode auf, damit die Instantiierung etc.)

Jedoch bin ich kämpfen, um zu sehen, warum dies besser ist.
In der ehemaligen Methode, Dinge zu tun, könnte der Benutzer direkt Zugriff auf die Variablen. Aber auch wenn Sie durch ausblenden der Variablen, Sie können nicht direkt darauf zugreifen, kann der Benutzer indirekt Zugriff auf und ändern Sie liefert exakt dasselbe Ergebnis.

Warum ist es, dass diese bevorzugt wird und was ohne Zweifel albern Ding bin ich fehlt/Blick?

check out : programmers.stackexchange.com/questions/143736/... Fragen ziemlich bedeckt es.
stackoverflow.com/questions/1568091/why-use-getters-and-setters Sie interessieren könnten.
Nicht sicher, ob jemand wird dies Lesen, aber würde die person, die down-stimmten dieser Frage darauf zu erklären, warum? Danke.
Dies ist eine alte Qn aber ich ernsthaft nicht verstehen, warum wurde es geschlossen, da off-topic? Dieser link kam zuerst auf meine Google-Suche nach etwas im Zusammenhang mit der Einstellung private Variablen. (Der einzige Nachteil dieses Qn ist zu ausführlich für das, was es fragt. Das kann korrigiert werden durch Bearbeiten ) und Markieren es als doppelte ist auch in Ordnung, aber nicht off-topic. Re-opening.
Ich halte diese Frage viel besser gebildet als andere, weil es in der Art "Zuerst ich Ein, aber dann ändere ich es nach B, was ist also der Unterschied?" mit konkreten Beispielen. Und das macht das Thema viel verständlicher

InformationsquelleAutor Andrew Martin | 2013-02-04

Schreibe einen Kommentar