Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| programmierung:public_vs._privat [2024/07/01 18:59] – swe | programmierung:public_vs._privat [2024/07/03 16:04] (current) – removed swe | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== public und private ====== | ||
| - | |||
| - | Jedes Attribut einer Klasse und jede Methode kann eine der Eigenschaften '' | ||
| - | '' | ||
| - | |||
| - | ===== Benutzung von Attributen außerhalb der Klasse ===== | ||
| - | '' | ||
| - | |||
| - | '' | ||
| - | |||
| - | Das bedeutet, dass Attribute, die '' | ||
| - | |||
| - | <WRAP group> | ||
| - | <WRAP half column> | ||
| - | <code java [enable_line_numbers=" | ||
| - | public class Konto { | ||
| - | | ||
| - | String inhaber; | ||
| - | double guthaben; | ||
| - | double dispo; | ||
| - | |||
| - | ... | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | <WRAP half column> | ||
| - | <code java [enable_line_numbers=" | ||
| - | public class Main { | ||
| - | public static void main(String[] args) { | ||
| - | |||
| - | Konto giro = new Konto(); | ||
| - | giro.inhaber = " | ||
| - | giro.dispo = 1000; | ||
| - | ... | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Hier wird in der '' | ||
| - | |||
| - | ===== Attribut privat setzen ===== | ||
| - | |||
| - | |||
| - | Wenn ich selbst bestimmen möchte, wie auf bestimmte Attribute zugegriffen wird, muss ich das Attribut nach außen schützen, indem ich es auf '' | ||
| - | |||
| - | <WRAP group> | ||
| - | <WRAP half column> | ||
| - | <code java [enable_line_numbers=" | ||
| - | public class Konto { | ||
| - | | ||
| - | String inhaber; | ||
| - | double guthaben; | ||
| - | private double dispo; | ||
| - | |||
| - | ... | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | <WRAP half column> | ||
| - | <code java [enable_line_numbers=" | ||
| - | public class Main { | ||
| - | public static void main(String[] args) { | ||
| - | |||
| - | Konto giro = new Konto(); | ||
| - | giro.inhaber = " | ||
| - | giro.dispo = 1000; | ||
| - | ... | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | ===== Getter und Setter ===== | ||
| - | |||
| - | Nun wäre es ein ziemlich sinnloses Programm, wenn ich bestimmte Attribute im Programmablauf nicht verändern könnte. Als Programmierer möchte ich ja, dass Attribute ja nach Objekt unterschiedlich sein können. Ich möchte das aber eben nach **meinen eigenen Bedingungen**! | ||
| - | |||
| - | Hier kommt das Konzept der sogenannten **Getter** und **Setter**-Methoden zum Tragen. | ||
| - | |||
| - | Statt dass ich das Attribut '' | ||
| - | |||
| - | Was ist nun der große Unterschied zum direkten Bearbeiten? | ||
| - | |||
| - | Ich kann in den **Getter** und **Setter**-Methoden meinen eigenen Bedingungen implementieren! So kann ich für das Beispiel des Kontos festlegen, dass ein Attribut '' | ||
| - | |||
| - | <WRAP group> | ||
| - | <WRAP half column> | ||
| - | <code java [enable_line_numbers=" | ||
| - | public class Konto { | ||
| - | | ||
| - | String inhaber; | ||
| - | double guthaben; | ||
| - | private double dispo; | ||
| - | | ||
| - | public void setDispo(int x){ | ||
| - | if (x > 0){ | ||
| - | | ||
| - | } | ||
| - | } | ||
| - | |||
| - | ... | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | <WRAP half column> | ||
| - | <code java [enable_line_numbers=" | ||
| - | public class Main { | ||
| - | public static void main(String[] args) { | ||
| - | |||
| - | Konto giro = new Konto(); | ||
| - | giro.inhaber = " | ||
| - | | ||
| - | giro.setDispo(1000); | ||
| - | ... | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||