Konstrukt | Java | Javascript | C# | PHP | Python |
Kommentar | // Zeile /* Block */ /** Beschreibung Methode für JavaDoc */ |
// Zeile /* Block */ |
// Zeile /* Block */ /// <summary> /// Method: Required designer variable. /// </summary> |
// Zeile /* Block */ php.exe -a // interaktive shell |
# Zeile """ Block """ # Installation von Modulen import pandas c:>pip install pandas c:>python -m pip install pandas # Besonderheiten pass #Leerer Befehl |
Ausgabe | System.out.println("Hallo Welt"); // Im Text folgend abgekürzt mit sout |
console.log("Hallo Welt"); // Im Text folgend abgekürzt mit clog
document.write("<h1>Hello JavaScript!</h1>"); //HTML verändern document.getElementById("demo").innerHTML = "Hello"; //Webseite überschreiben document.open(); //Multiline Strings var s5 = `${s1}-${s2}`; var s6 = `Multiline String |
//using System; Console.WriteLine("Hallo Welt"); // Visual Studio: cw<Tab><Tab> // Im Text folgend abgekürzt mit CW Console.WriteLine($"Sum of {sum} elements is {numEl}."); // {} setzt Variablenwert ein. Console.WriteLine("x={0} y={1} z={2}", x, y, z); Console.WriteLine(@ "Multiline String with special characters: ""a"" "); |
<?php ... ?> // Code auf Webseite ausführen <?= $wert ?> // Wert in Webseite einfügen // Ausgabe auf Webseite, Verknüpfung mit '.' echo "Ihr Name lautet $name" . "<br>\n"; print "Ihr Name lautet $name" . "<br>\n"; // Ausgabe von Variablen print_r(), var_dump() gibt Wert und Datentyp aus: echo var_dump($res); // array(3) {[0]=>int(1) [1]=>int(2) [2]=>int(3)} $s6 = <<<EOD Multiline String with special characters: "a" EOD; |
print("Hallo Welt") print("""Multiline String |
Eingabe |
//import java.util.Scanner; |
var ihrName = prompt("Bitte Name eingeben","Markus"); var ok = confirm("Wirklich?"); <!doctype HTML> <body> |
//using System; |
//formular.html <form action="auswertung.php" method="post"> <input type="text" name="name"> … </form> //auswertung.php <?php if (isset($_REQUEST["name"]) && $_REQUEST["name"]!="") { $name = $_REQUEST["name"]; echo "Hallo $name!<br>\n"; } ?> //Session // Session starten session_start(); // Variable beim ersten Mal anlegen if (!isset($_SESSION['counter'])) $_SESSION['counter']=0; // Variable nutzen $counter=$_SESSION['counter']; $counter++; echo($counter . "<br>\n"); // Neuer Wert wieder in Session-Variable speichern $_SESSION['counter']=$counter; ?> <p>F5 drücken zum Hochzählen!</p> //In Textdatei speichern <?php error_reporting(0); $item=$_REQUEST["item"]; if (isset($_REQUEST["clear"])) { unlink("todo1.txt"); echo "ToDo Liste gelöscht!<br>\n"; } elseif (isset($item)&&$item!="") { file_put_contents("todo1.txt","$item\n",FILE_APPEND); } //Liste ausgeben $content = file_get_contents("todo1.txt"); if (isset($content)) { $lines = explode("\n",$content); $nr=1; foreach($lines as $line) { echo "$nr: $line<br>\n"; $nr++; } } ?> |
input("Wie heißt Du: ")) #gibt str zurück |
Variablen / Datentypen | int, long, float, double, boolean, char, String, … int iZahl1=10; final double PI=3.14159265; String text="Hallo Welt"; |
var iZahl1 = 10; Primitive Datentypen: number, string, boolean, undefined, null typeOf text // number, string, boolean, undefined |
Werttypen: int, long, float, double, char, bool enum E {...}, struct S {...}: //wie class, keine Vererbung, zum Speichern von Daten (T1, T2, ...) //Tupel Verweistypen: string object class c {...} interface I {...}: int[] a, int[,] a2, int[][] aJagged // array aus array delegate int D(...): // Methoden werden Entitäten, simuliert Pointer auf Methoden Nullable Typen: int?, string?, ... int? myNullie=null; myNullie = 1; int iZahl1=10; const double PI=3.14159265; public readonly double PI=3.14159265; string text="Hallo Welt"; Alle Typen (auch primitive) erben von object var kann genutzt werden, wenn der Typ klar ist: var s = new List<int>(); |
$str = "foo"; // a string $i = 12; // an integer $x == $y // gleicher Wert $x === $y // ... und gleicher Typ $a1 == $a2 // auch für Arrays |
iZahl1=10 |
Variablen umwandeln (Typecast) | iZahl1 = (int) fZahl1; iZahl1 = Integer.valueOf(sZahl1); sZahl1 = String.valueOf(iZahl1); |
var iZahl1 = Math.floor(fZahl1) //Nachkommastellen abschneiden. var iZahl1=parseInt("3.14"); //parseFloat("3.14"); isNaN(a) // keine Zahl |
iZahl1 = (int) fZahl1; iZahl1 = Convert.ToInt32(fZahl1); object o1 = iZahl1 //boxing iZahl1 = Contert.ToInt32(sZahl1); sZahl1 = Convert.ToString(iZahl1); |
var_dump($int); // int(12) is_int($int); // true is_numeric($int); // true gettype($bool); // prints out "boolean" $i2 = (int)"1234"; // $i2=1234 isset($i3); // false |
int(...), float(...) und str(...) |
Operatoren | + - * / % && || ! == < <= > >= != .equals() int zufall = (int)(Math.random()*6)+1; //1...6 |
"a" == "a" int zufall = Math.floor((Math.random()*6))+1; eval(3+5) |
+ - * / % && || ! == < <= > >= != "a" == "a" Random rnd = new Random(); int rndNumber = rnd.Next(1, 7); //1...6 |
+ - * / % && || ! == < <= > >= != "a"=="a" "a"==="a" $wuerfel = rand(1,6); //1...6 |
+ - * / % y = 5 // 2 # Ganzahldivision a = 3**2 # Exponent 3^2 = 9 and, or, not, ==, is, is not math.sin # sin,cos, pi import random zufall1 = random.randint(1, 6) //1...6 begruessungen = ["Hi","Servus","Tach","Moin"] begruessung = random.choice(begruessungen)
|
if-Bedingung |
if (zahl>0) { |
if (zahl>0) { |
if (zahl>0) { |
if zahl>0: print("positiv") elseif zahl==0: print("Null") else: print("negativ"); |
if a > 0:
|
case...switch | int monat = 3; switch (monat) { case 1: monatString = "Januar"; break; case 2: monatString = "Februar"; break; ... case 12: monatString = "Dezember"; break; default: monatString = "Ungültiger Monat"; break; } |
int monat = 3; switch (monat) { case 1: monatString = "Januar"; break; case 2: monatString = "Februar"; break; ... case 12: monatString = "Dezember"; break; default: monatString = "Ungültiger Monat"; break; } |
int monat = 3; switch (monat) { case 1: monatString = "Januar"; break; case 2: monatString = "Februar"; break; ... case 12: monatString = "Dezember"; break; default: monatString = "Ungültiger Monat"; break; } |
$monat = 3; switch (monat) { case 1: $monatString = "Januar"; break; case 2: $monatString = "Februar"; break; ... case 12: $monatString = "Dezember"; break; default: $monatString = "Ungültiger Monat"; } |
switcher = { |
Schleifen |
for(int i=0;i<10;i=i++) {sout("Zahl "+i);} |
s. Java for(let el of array) { ...} //elements array[0],array[1],... for(let el in array) { ...} //index 0,1,2,... |
for(int i=0;i<10;i++) {Cw("Zahl "+i);} int i=1; while(i<=10) { Cw("Zahl "+i); i++; } |
for($i=0;$i<10;i++) {echo("Zahl $i<br>\n");} $i=1; while($i<=10) { echo("Zahl $i<br>\n"); $i++; } |
for i in range(10): print("Zahl ",i) for i in range(5,10): # 5 bis < 10, Schrittweite 1
for i, fruit in enumerate(fruits): print(i,fruit) i = 10 while i > 0: print(i) i -= 1 |
Arrays |
int[] zahlen = {1,2,3,4,5,6}; String alpha = new String[]{"a","b","c"}; |
var zahlen = [1,2,3,4,5,6]; alpha[3] // undefined, kein Fehler for(var i=0;i<=zahlen.length;i++) { zahlen[i]=i; } |
int[] zahlen = {1,2,3,4,5,6}; string alpha = new string[]{"a","b","c"}; |
$personArray = array(); // oder =[]; $personArray[0]="Peter"; $personArray[1]="Monika"; //... $personArray = ["Peter", "Monika", "Hans"]; $personArrayLength = count($personArray); //3 $personArray[] = "Tina"; // Array / Liste erweitern $tabArray = [[22.3, 18.5],[21.6, 19.7], [24.6, 20.1]]; $dict=array("house"=>"Haus", "cat"=>"Katze"); //$dict = []; $dict["house"]="Haus"; $dict["cat"]="Katze"; // array( [house] => Haus [cat] => Katze ) $isset($dict("house")) //true |
zahlen = [1,2,3,4,5,6]
|
2Dim-Arrays | float[][] noten = new float[2][3]; for(int zeile=0;zeile<noten.length;zeile++) { for(int spalte=0;spalte<noten[zeile].length;spalte++) { noten[zeile][spalte]=((int)Math.random()*6)+1; } } |
noten = Array.from(Array(2), () => new Array(3)); s. Java analog |
int[,] a2 = new int[10, 5]; //2-dim float[,] noten = new float[2, 3]; //jaggedArray int[][] a = new int[3][]; for (int i = 0; i < a.Length; i++) a[i] = new int[10]; for (int z = 0; z < a.Length; z++) { |
$array2x3 = array_fill(0, 2, array_fill(0, 3, ""); s. Java analog |
b1 = [[1,2,3],[11,12,13],[21,22,23]] #Auf Element zugreifen
|
Tupel (Gruppieren von Variablen) |
% | % | (double Sum, int Count) t2 = (4.5, 3); CW($"Sum of {t2.Count} elements is {t2.Sum}."); // Output: Sum of 3 elements is 4.5. |
function foo() {return array('a', 'b');}
list($a, $b) = foo(); |
//Sind unveränderlich (immutable)! # Destrukturierung: Das Tupel wird in seine Einzelteile zerlegt und verschiedenen Variablen zugewiesen
# Liste von Tupeln personen = [person1, person2, person3] for person in personen: for wert in person: print(wert) |
Methoden / Funktionen | public static void printHalloWelt() { sout("Hallo Welt"); } public static double max(double a, double b) { if(a<b) return a; else return b; } |
function printHalloWelt() { console.log("Hallo Welt"); } //Funktionen an Variablen binden //Überladen / Defaultwerte für Parameter |
public static void PrintHalloWelt() { CW("Hallo Welt"); } public static double Max(double a, double b) { if(a<b) return a; else return b; } delegate double Function(double x); class DelegateExample{ static double[] Apply(double[] a, Function f){ var result = new double[a.Length]; for (int i = 0; i < a.Length; i++) result[i] = f(a[i]); return result; } public static void Main(){ double[] a = { 0.0, 0.5, 1.0 }; double[] squares = Apply(a, (x) => x * x); double[] sines = Apply(a, Math.Sin); } } |
//In PHP müssen globale Variablen in Methoden deklariert werden: global $iForAll=10; // ändert globale Variable in Methode function changeI($newI): global $iForAll; $iForAll=$newI; changeI(20); print($iForAll); //20 //Das gleiche geht auch mit dem $GLOBALS-Array: changeI($newI): $GLOBALS['iForAll']=$newI; // Datentypen festlegen declare(strict_types=1); // strict requirement function addNumbers(float $a, float $b) : int { return (int)($a + $b); } // Pass by reference function add_five(&$value) { $value += 5; } $num = 2; add_five($num); |
def max(a,b): if (a>b): return a else: return b print(max(1,2)) # mit Typangaben def verdopple(zahl: int) -> int: """Verdoppelt zahl""" return zahl * 2 # Doku anzeigen help(verdopple) #Defaults, Überladen #keyword Argument vs positionales Argument def begruesse(nachname, anrede="Frau"): print("Hallo", anrede, nachname) begruesse("Schmidt", "Herr") begruesse("Meier") begruesse(anrede="Präsident", nachname="Müller") #Rückgabe mehrerer Werte def myFullName(): name1="Tom" name2="Schlau" age=21 return name1,name2,age vorname,nachname,alter = myFullName() #Höhere Ordnung def wiederhole(anzahl, eine_funktion): for i in range(anzahl): eine_funktion() wiederhole(3, sage_hallo) #In Python müssen globale Variablen in Methoden deklariert werden: global iForAll=10; # ändert globale Variable in Methode def changeI(newI): global iForAll iForAll=newI changeI(20) print(iForAll) #20 |
Strings | String s1 = "Hallo"; String s2 = new String("Welt"); String s3 = s1 + "-" + s2; // "Hallo-Welt" int len = s1.length(); // len=5 if (s1.equals(s2)) {sout("ja");} char second = s1.charAt(1); // second='a' String teil = s2.substring(1,3); // teil="el" (1 inklusiv, 3 exklusiv) if (s1.startsWith("Hallo")) {sout("Begrüßung");} int aPos = s1.indexOf("ll"); // aPos=2 (-1 falls nicht gefunden) s3 = s1.replace("ll","LihaL"); // s3 = "HaLihaLo" s3 = s3.replaceAll("(.*)-(.*)","$2-$1"); // regulärer Ausdruck; s3 = "Welt-Hallo" s2= " Hallo ".trim(); // s2= "Hallo" String plz = String.valueOf(79100); // plz="79100" String[] res = s3.split("-"); // res = {"Hallo ","Welt"} |
s. Java var len = s1.length; //Multiline Strings var s5 = `${s1}-${s2}`; var s6 = `Multiline String |
string s1 = "Hallo"; string s2 = "Welt"; string s3 = s1 + "-" + s2; // "Hallo-Welt" string s4 = string.Format("{0}-{1}", s1, s2); string s5 = $"{s1}-{s2}"; // {} setzt Variablenwert ein. string s6 = @" Multiline String with special characters: ""a"" "; filename=@"c:\sandbox\marks.xlsx"; int len = s1.Length; // len=5 if (s1 == s2) { CW("ja"); } char second = s1[1]; // second='a' string teil = s2.Substring(1, 2); // teil="el" (1 inklusiv, 2 Länge) if (s1.StartsWith("Hallo")){ CW("Begrüßung"); } int aPos = s1.IndexOf("ll"); // aPos=2 (-1 falls nicht gefunden) s1 = s1.Replace("ll", "LihaL"); // s1 = "HaLihaLo" s2 = " Hallo ".Trim(); // s2= "Hallo" string plz = Convert.ToString(79100); // plz="79100" string[] res = s3.Split('-'); // res = {"Hallo ","Welt"} |
$s1 = "Hallo";
$s2 = "Welt"; $s3 = $s1 . "-" . $s2; // "Hallo-Welt" $len = strlen($s1); // $len=5 $teil = substr($s2,1,3); // $teil="el" (1 inklusiv, 3 exklusiv) $aPos =strpos($s1,"ll") // $aPos=2 (false falls nicht gefunden) str_replace("ll","LihaL",$s3); // $s3 = "HaLihaLo" preg_replace('(.*)-(.*)'/i,$s3, $s3New); // regulärer Ausdruck; $s3New = "Welt-Hallo" $s2= trim($s2); // $s2= "Hallo" $plz = strval(79100); // $plz="79100" $res = explode('-',$s3); // $res = ["Hallo ","Welt"] |
s1 = "Hallo" s2 = 'Welt' s3 = s1 + "-" + s2; # "Hallo-Welt" s3 = "My name is John, I am " + str(age) s4 = "Ein String \ über \ mehrere Zeilen" string s5 = f"{s1}-{s2}"; # {} setzt Variablenwert ein. string s6 = """ Multiline String with special characters: "a" """ filename=r"c:\sandbox\marks.xlsx"; len = len(s1) if (s1 == s2): ... second = s1[1]; # second='a' teil = s2[1, 2]; # teil="el" (1 inklusiv, 2 exklusiv) if (s1.startswith("Hallo")): ... aPos = s1.find("ll"); # aPos=2 (-1 falls nicht gefunden) s1 = s1.replace("ll", "LihaL"); # s1 = "HaLihaLo" s2 = " Hallo ".strip(); # s2= "Hallo" plz = str(79100); # plz="79100" res = s3.split("-"); # res = ["Hallo ","Welt"] # String durchlaufen for i in range(len(s)): print(s[i]) for c in s: print(c) # String umdrehen s1[::-1] |
Listen | ArrayList<String> myList = new ArrayList<String>(); myList.add("Hallo"); int len = myList.size(); // len=1 boolean res=myList.contains("Welt"); // res=false int aPos = myList.indexOf("Hallo"); // aPos=0 (-1 falls nicht gefunden) String el1=myList.get(0); // el1="Hallo" myList.set(0, "Hallo Welt"); myList.remove(0); // Liste kopieren / clonen ArrayList<String> myListCopy = new ArrayList<>(myList); ArrayList<String> myListCopy = (ArrayList<String>) myList.clone(); // Array in Liste umwandeln ArrayList<String> myList1 = new ArrayList(Arrays.asList(array)); // Liste in Array umwandeln String[] array2 = myList2.toArray(new String[]{}); |
var myList = []; myList.push("hallo"); //hängt ans Ende der Liste an var res = myList.includes("Welt); indexOf s. Java var el1 = myList[0]; function arrayRemove(arr, value) { |
List<string> myList = new List<string>(); myList.Add("Hallo"); int len = myList.Count; // len=1 bool res = myList.Contains("Welt"); // res=false int aPos = myList.IndexOf("Hallo"); // aPos=0 (-1 falls nicht gefunden) String el1 = myList[0]; // Alternativ .ElementAt() myList[0]="Hallo Welt"; myList.RemoveAt(0); // Liste kopieren / clonen List<string> myListCopy = new List<string>(myList); //1. List<string> myListCopy = myList.ToList(); //2. // Array in Liste umwandeln int[] a = new int[] { 1, 2, 3, 4 }; List<int> myIntList = new List<int>(a); //1. myIntList = a.ToList(); //2. myIntList.AddRange(a); //3. // Liste in Array umwandeln a = myIntList.ToArray(); |
s. Arrays |
siehe Arrays #Contains #Setzen / Ersetzen #insert / append #remove #Loop zip
c, v = zip(*result_list) #zip wieder aufteilen #List comprehension (Listenabstraktion) [print(x) for x in thislist] newlist = [x for x in fruits if "a" in x] newlist = [x for x in range(10)] #[0,...,9] newlist = [x for x in range(10) if x < 5] #[0,...,4] newlist = [x.upper() for x in fruits]
# Idee: SELECT SUM(z) FROM zahlen WHERE z % 2 = 1 zahlen = [7, 43, 12, 0, -3, -35, 33, 24, 8, 45, 60, 2, 13, -1, 22, 9]
B = copy.deepcopy(A) # equals |
Dictionary HashMap |
HashMap<String,String> dict = new HashMap<String,String>(); dict.put("katze","cat"); dict.put("maus","mouse"); String res = dict.get("katze"); // res="cat" int len = dict.size(); // len=2 boolean res=dict.containsKey("katze"); // res=true boolean res=dict.containsValue("mouse"); // res=true for (String key : dict.keySet()) { for (String key : dict.values()) { |
Javascript |
Dictionary<string, int> vars = new Dictionary<string, int>();
vars["x"] = 3; //Alternativ: vars.Add("x",3) vars["x"] = 4; //Überschreibt den Wert var vars2 = new Dictionary<string, int>() {{"x",1 }, {"y",2 }, {"z",3 }}; foreach (KeyValuePair<string, int># el in vars) CW("Key: {0}, Value: {1}", el.Key, el.Value); Console.WriteLine(vars["unknown"]); //RunTimeError if (vars.ContainsKey("x")) { CW(vars["x"]); } // Keys in Liste speichern var varKeys = new List<string>(vars.Keys); if (vars.ContainsKey("x")) { vars.Remove("x"); } vars.Clear(); |
s. Arrays | vars = {} vars["x"] = 3; vars["x"] = 4; #Überschreibt den Wert vars2 = {"x":1,"y":2,"z":3} for key in vars: print(f"var:{key} value:{vars[key]}") for val in vars.values(): print(f"value:{val}") print(vars["unknown"]) #Exception if (vars.get("x")!=None): print(vars["x"]) val=vars.get("x","-1") #-1 falls nicht vorhanden # Keys in Liste speichern keys=[] for k in vars: keys.append(k) del vars["x"] vars.clear(); |
Stack | Stack<String> stack = new Stack<String>(); boolean leer = stack.empty(); stack.push("Aufgabe1"); String el = stack.pop(); String el = stack.peek(); |
Javascript |
Stack<int> myStack = new Stack<int>#(); myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4); Stack<int> myStack = new Stack<int>(new int[]{ 1, 2, 3, 4}); foreach (var item in myStack) CW(item + ","); //prints 4,3,2,1, while (myStack.Count > 0) CW(myStack.Pop() + ","); if(myStack.Count > 0) CW(myStack.Peek()); // prints 4 myStack.Contains(2); // returns true |
PHP | from collections import deque
stack = [] #O(n) stack = deque() #O(1) # push stack.append('a') stack.append('b') stack.append('c') # pop el=stack.pop() #c # isEmpty len(stack)==0 stack.empty() |
Queue Deque (= Stack und Queue) |
Deque<String> deque = new ArrayDeque<String>(); boolean leer = deque.isEmpty(); deque.add("a"); deque.add("b"); deque.add("c"); //{"a","b","c"} String el = stack.poll() (removeFirst); // el="a" String el = stack.peek(); (getFirst);// el="a" String el = stack.pollLast(); (removeLast); // el="c" String el = stack.peekLast(); (getLast) // el="c" |
Javascript |
Queue<string> queue = new Queue<string>();
int numEl = queue.Count; queue.Enqueue("a"); queue.Enqueue("b"); queue.Enqueue("c"); //{"a","b","c"} queue.Dequeue(); //{"b","c"} queue.Peek(); //"b" queue.Last(); //"c" queue.Contains("c"); |
PHP | from collections import deque deque = deque(["a","b","c"]) bool leer = (len(deque)==0) deque.append("last") #["a","b","c","last"] deque.appendleft("first") #["first","a","b","c","last"] el = deque.popleft() # el="first" ["a","b","c","last"] el = deque.pop() # el="last" ["a","b","c"] el = deque[0] # el="first" el = deque[len(deque)-1] # el="last" if "b" in deque: ... #oder deque.count("b")>0 |
Textdatei zeilenweise einlesen |
//import java.io.*; über der Klasse angeben |
Javascript |
StreamReader sr = new StreamReader(dateiAusgabe); string line = sr.ReadLine(); while (line != null) { CW("Zeile: " + line); line = sr.ReadLine(); } sr.Close(); //Datei auf einmal lesen stringdatei=File.ReadAllText(@"D:\Test.txt"); string[] datei = File.ReadAllLines(@"D:\Test.txt"); |
$content = file_get_contents("todo1.txt"); if (isset($content)) { echo"\n"; $lines = explode("\n",$content); $nr=1; foreach($lines as $line) { echo "$nr: $line<br>\n"; $nr++; } } |
f = open("test.txt", "r") # r+=read/write file = f.read() zeile = f.readline() f.close() |
Textdatei zeilenweise schreiben |
//import java.io.*; über der Klasse angeben |
Javascript |
bool append=true; StreamWriter sw = new StreamWriter(dateiAusgabe, append); sw.WriteLine(text); sw.Close(); |
# x: Erstellt falls nicht existiert # w: Überschreibt w+: lesen/schreiben # a: append f = open("test.txt", "w") file.write("Hello There \n") file.writelines(["Zeile1\n","Zeile2\n"]) file.close() |
|
String in Textdatei schreiben (evt. ineffizient) |
//import java.io.*; über der Klasse angeben |
Javascript | File.WriteAllText("test.txt","Mein Inhalt"); | file_put_contents($file,"$content\n",FILE_APPEND); | s. Textdatei zeilenweise schreiben |
JSON | Java |
var bmw1 = { "farbe":"Rot", "geschwindigkeit":225 }; // JSON Object -> String // String -> JSON Object //JSON sortieren |
using System.Text.Json;
// Enumerate Array
//JSON Object -> string
// Serialization with classes
// JSON Serialize
// JSON Deserialize
// see also async versions, JsonPropertyName |
// Object -> JSON String // JSON String -> Object |
# python dict # python dict -> JSON String # JSON String -> Python dict #JSON sortieren #python dict -> JSON-Datei #JSON-Datei -> python dict |
OOP Klassen |
public class Mensch { // Konstruktoren |
Javascript | class Mensch { // statisches Attribut public static string version = "1.0"; // Attribute public string Name; public string Haarfarbe; private int Alter; // Konstruktoren public Mensch() { } public Mensch(string Name, string Haarfarbe, int Alter) { this.Name = Name; this.Haarfarbe = Haarfarbe; this.Alter = Alter; } // Methoden public void Schlafen(){CW(name+" schläft");} public void Sitzen(){CW(name+" sitzt");} // Getter/Setter public int GetAlter() { return Alter; } public void SetAlter(int alter) { Alter = alter; } // Alternativ als Properties einfach public int Alter { get; set; } // Alternativ als Properties komplex private int alter; public int Alter { get { if (Alter2 > 0) return alter; else return 0; } set { alter = value; } } |
class Car {
public $color; public $model; public function __construct($color, $model) { $this->color = $color; $this->model = $model;} public function message() { return "My car is a " . $this->color . " " . $this->model . "!"; } } |
class Mensch: # statisches Attribut version = "0"; # Konstruktor und Attribute, kein Überladen def __init__(self,name,haarfarbe,alter): Mensch.version = "1.1" #type(self)=Mensch self.name=name #public self.haarfarbe=haarfarbe #public self.__alter = alter; #private def __del__(self): print(f"Mensch({self.name}) deleted") def __str__(self): return f"Mensch({self.name})" # Methoden def schlafen(self): print (self.name+" schläft") def sitzen(self):print(self.name+" sitzt") #Getter/Setter def getAlter(self): return self.__alter def setAlter(self,alter): self.__alter=alter #Alternativ als Properties def __getName(self): try: return self.__name except AttributeError: return "Noname" def __setName(self,name): self.__name = name name = property(__getName,__setName) |
OOP Objekte |
public class TesteMensch { |
Javascript |
class TesteMensch { |
$myCar = new Car("black", "Volvo");
echo $myCar -> message(); |
patrick= Mensch("dontKnow","blond",18) patrick.name="Patrick" patrick.setAlter(19) patrick.schlafen() print("Version:",Mensch.version) |
OOP Vererbung |
public class Kreis extends GeoFigur{ public static void main(String[] a) { |
Javascript |
class Kreis : GeoFigur{ public static void Main(string[] a) { |
PHP | import math class Kreis(GeoFigur): def __init__(self,radius): self.radius = radius def berechneFl(self): return math.pi * self.radius**2 def __str__(self): return self.__class__.__name__ + " r= " + str(self.radius) k1 = Kreis(10) # verwendet Methoden der Oberklasse k1.setX(10) k1.setY(20) |
OOP Abstrakte Klassen und Methoden |
public abstract class GeoFigur { public class Kreis extends GeoFigur{ |
Javascript |
abstract class GeoFigur { public class Kreis : GeoFigur{ |
PHP | from abc import ABC, abstractmethod class GeoFigur(ABC): @abstractmethod def berechneFl(self): pass class Kreis(GeoFigur) def berechneFl(self): return math.pi * self.radius**2 |
OOP Interfaces |
public interface Paintable { |
Javascript |
interface IPaintable void Paint(Graphics g); //hier ohne public class Kreis : IPaintable { |
PHP | Nicht nötig, Mehrfachvererbung geht. |
OOP Methoden überschreiben |
public class GeoFigur { |
Javascript |
class GeoFigur { class Kreis : GeoFigur { |
PHP | class GeoFigur: ... def berechneFl(self): print("Bitte in der Unterklasse definieren") return -1 class Kreis(GeoFigur): .... def berechneFl(self): return math.pi * self.radius**2 |
OOP Aufruf der Oberklasse | public class Kreis extends GeoFigur{ ... public Kreis(int x, int y, string farbe, float radius) { super(x,y,farbe); //muss an erster Stelle stehen. this.radius=radius; } } |
Javascript | public class Kreis : GeoFigur{ ... public Kreis(int x, int y, string farbe, float radius) : base(x,y,farbe){ this.radius=radius; } } |
PHP | Python |
Konstrukt | Java | Javascript | C# | PHP | Python |