Einführung in die objektorientierte Programmierung

Gleichheit von Zeichenketten

Hier werden verschiedene Zeichenketten verglichen, also kommt ungleich heraus

class Zeichenketten{
   
 public static void main(String[] args){
 
 String s1="s1";
 String s2="s2";
 
 if (s1==s2 )
 System.out.println("gleich");
 else System.out.println("ungleich");
 
 System.out.println(s1+" "+s2);
 
 }
 
 }
 

Hier werden gleiche Zeichenketten verglichen, also kommt gleich heraus

class Zeichenketten{
   
 public static void main(String[] args){
 
 String s1="s1";
 String s2="s2";
 
 if (s1==s2 )
 System.out.println("gleich");
 else System.out.println("ungleich");
 
 System.out.println(s1+" "+s2);
 
 }
 
 }

Hier werden bei Eingabe vom Parameter "s1" gleiche Zeichenketten verglichen, es kommt trozdem ungleich heraus.

Der Compiler ist nicht in der Lage, vorherzusehen, dass der Benutzer s1 als Wert übergibt.

  
class Zeichenketten{
   
 public static void main(String[] args){
 
 String s1="s1";
 String s2=args[0];
 
 if (s1==s2 )
 System.out.println("gleich");
 else System.out.println("ungleich");
 
 System.out.println(s1+" "+s2);
 
 }
 
 }
 

Deshelb bei Zeichenketten equals verwenden:

class Zeichenketten{

public static void main(String[] args){

String s1="s1";
String s2=args[0];

if (s1.equals(s2) )
System.out.println("gleich");
else System.out.println("ungleich");

System.out.println(s1+" "+s2);

}

}


Game of Life

 

public class GameOfLife {
 boolean[][] feld = { { false, false, false, false, false },
 { false, false, true, false, false },
 { false, false, true, false, false },
 { false, false, true, false, false },
 { false, false, false, false, false } };
 public static void main(String[] args) {
 GameOfLife myGame = new GameOfLife();
 for (int i = 0; i < 10; i++) {
 myGame.nextGeneration();
 myGame.print();
 System.out.println();
 }
 }
 void print() {
 for (int i = 0; i < feld.length; i++) {
 for (int j = 0; j < feld[i].length; j++) {
 if (feld[i][j] == true)
 System.out.print("o ");
 else
 System.out.print(". ");
 }
 System.out.println();
 }
 }
 void nextGeneration() {
 boolean[][] pregen= new boolean[feld.length][feld[0].length];
 for (int i=0;i< feld.length ;i++ ) {
 for (int j=0;j< feld[0].length ;j++ ) {
 pregen[i][j]= feld[i][j];
 } // end of for
 } // end of for
 
 for (int i=1;i< pregen.length-1 ;i++ ) {
 for (int j=1;j< pregen[0].length-1 ;j++ ) {
 int alive=0;
 
 // Summe der lebenden Nachbarn des Elements i,j berechnen
 for (int k=i-1;k<= i+1 ;k++ ) {
 for (int l=j-1;l<=j+1 ; l++) {
 if (pregen[k][l] && !((i==k) && (j==l)) ) {
 alive++;
 } // end of if
 } // end of for
 } // end of for
 
 //Zelle manipulieren nach Anzahl der lebenden Nachbarn
 switch (alive) {
 case 2 : 
 break;
 case 3 : 
 feld[i][j] = true;
 break;
 default: 
 feld[i][j] = false;
 } // end of switch
 }
 }
 }
 }
 


Objekte erzeugen


class Person{
private int alter;
private String name;
private int tag, monat, jahr;
private static int anzahl;

public void drucken(){
System.out.println(name +" "+ alter+" "+ tag+"."+monat+"."+jahr);
}

public Person(String name, int alt, int tag, int monat, int jahr){
this.name=name;
alter = alt; this.tag=tag; this.monat=monat; this.jahr=jahr;
anzahl++;
}

public Person(){
anzahl++;
}

public int getAlter(){
return this.alter;
}

public void getAnzahl(){
System.out.println(anzahl);
}

public static void main(String[] args){
Person person= new Person("Hans",34,1,5,1980);
/* person.alter= 34;
person.name= "Hans";
person.tag = 1;
person.monat =5;
person.jahr = 1980; */

person.drucken();

//System.out.println(person);

Person person2= new Person();

//person2=person;

//System.out.println(person2);

System.out.println(person.getAlter());

person.getAnzahl();

person2.getAnzahl();

String z = 7 + "3";

double zahl= 3 + 4.5;

long langezahl = (long) 4;

try {
int zahl2 = 1 / 0;
} catch(ArithmeticException e) {
System.out.println("Fehler: " + e);
}

finally {

} // end of try

System.out.println("Programmende");

}

}


Gauss


public class Summierer {
public static void main(String[] args) {
Summierer summierer = new Summierer();
int startWert = Integer.parseInt(args[0]);
System.out.println("Ergebnis mit for-Schleife: "
+ summierer.forSumme(startWert));
System.out.println("Ergebnis kleiner Gauss: "
+ summierer.kleinerGauss(startWert));
System.out.println("Ergebnis rekursiv: "
+ summierer.rekursiveSumme(startWert));
}
int forSumme(int startWert) {
int summe=0;
for (int i=1; i<= startWert ; i++) {
summe= summe+i;
} // end of for
return summe;
}
int rekursiveSumme(int startWert) {
if (startWert<1) {
return 0;
}
else {
return startWert+ rekursiveSumme(startWert-1);
} // end of if-else
}

int kleinerGauss(int startWert) {
return startWert * (startWert+1) / 2;
}
}