Sichtbarkeit der Variablen in Java

  • Hallo :verycool: ,

    ich fange jetzt NEU an mich mit Java zu beschäftigen und da tauchen einige Fragen auf :confused:

    Hoffe, dass ihr mir helfen könnt :thumb:


    So ... ich hab bis jetzt die Variablen nach

    public class Sichtbarkeit {
    public static void main (String [] args) {

    // also hier deklariert und so !!

    int zahl, ziffer; 

    ABER warum ist das auf dem Bild dazwischen??

    public class Sichtbarkeit {
    static double d=3.0; // und warum steht denn da ein static davor??
    public static void main (String [] args) {

    :distur: :distur: :rolleyes: :rolleyes: :ahhh: :ahhh: :( :(

    Danke :thumb:
    ciao :zwinker:

  • die kurze erklärung ist: weil du sonst nicht von einer statischen methode in der klasse (z.b. main) auf diese variable zugreifen könntest.

    die längere beschreibung hat mit objektorientierung zu tun. eine statische variable gehört zu klasse, d.h. jede instanz der klasse greift auf die gleiche variable zu. nicht statische variablen gehören zu der instanz einer klasse, d.h. jede instanz hat seine eigene variable, auf welche andere instanzen der klasse nicht direkt zugreifen können.
    eine statische methode gehört auch zu klasse und nicht zu den instanzen. würde man z.b. in einer statischen methode versuchen auf eine nicht statische variable zuzugreifen, würde diese methode nicht wissen welche variable sie verwenden soll, das es diese variable nicht nur einmal gibt sondern für jede instanz einer klasse einmal.

  • Wenn Du gerade mit dem Programmieren anfängst, dann solltest Du dich nicht um die Bedeutung statischer Klassenelemente kümmern.

    Du hast ein Programmgerüst dieser Art ...

    Code
    public class Klassenname {
       public static void main(String[] args){
          // ANFANG
    
    
    
    
          // ENDE
       }
    }

    ... und schreibst deinen Programmcode zwischen
    // ANFANG
    und
    // ENDE

    Das war's!

  • ehrlich gesagt, hab auch nicht ganz verstanden, was hier steht :shinner:
    Hab versucht im Internet nach den Begriffen, wie Classe, Instanz usw. zu suchen aber bin trotzdem net weiter gekommen :ahhh: :confused: :distur: :shinner:

    Zitat von Alex_K

    die kurze erklärung ist: weil du sonst nicht von einer statischen methode in der klasse (z.b. main) auf diese variable zugreifen könntest.

    die längere beschreibung hat mit objektorientierung zu tun. eine statische variable gehört zu klasse, d.h. jede instanz der klasse greift auf die gleiche variable zu. nicht statische variablen gehören zu der instanz einer klasse, d.h. jede instanz hat seine eigene variable, auf welche andere instanzen der klasse nicht direkt zugreifen können.
    eine statische methode gehört auch zu klasse und nicht zu den instanzen. würde man z.b. in einer statischen methode versuchen auf eine nicht statische variable zuzugreifen, würde diese methode nicht wissen welche variable sie verwenden soll, das es diese variable nicht nur einmal gibt sondern für jede instanz einer klasse einmal.

    Danke :thumb:
    ciao :zwinker:

  • Zitat von freakjan

    ehrlich gesagt, hab auch nicht ganz verstanden, was hier steht :shinner:
    Hab versucht im Internet nach den Begriffen, wie Classe, Instanz usw. zu suchen aber bin trotzdem net weiter gekommen :ahhh: :confused: :distur: :shinner:

    Wenn man mitm Programmieren anfängt sollte man nicht gleich objektorientierte Programmierung machen :)

    Und wenn man mit objektorientierter Programmierung anfängt, sollte man nicht mit den Begriffsdefinitionen anfangen, sondern mit der Idee dahinter :)

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • :verycool: danke erstmal für die Mühe und Hilfsbereitschaft der Mitglieder :thumb:
    mmhh.... aber das Problem liegt daran, dass unser Prof. auf der FH wie eine Rackete vorgeht :ahhh:
    Wir haben uns sehr lange Zeit mit URM beschäftigt :zzz:
    Und jetzt in paar Tagen hat er uns mit Java vollgestopft.... da ich nie programmiert habe, bin ich ins schleudern geraten!
    Und versuch den verdammten Script zu verstehen! ... ich will das alles verstehen, weil ich mich sehr für programmieren interessiere :verycool:

    Danke :thumb:
    ciao :zwinker:

  • Zitat von freakjan

    das Problem liegt daran, dass unser Prof. auf der FH wie eine Rackete vorgeht :ahhh:
    Wir haben uns sehr lange Zeit mit URM beschäftigt :zzz:
    Und jetzt in paar Tagen hat er uns mit Java vollgestopft.... da ich nie programmiert habe, bin ich ins schleudern geraten!
    Und versuch den verdammten Script zu verstehen! ... ich will das alles verstehen, weil ich mich sehr für programmieren interessiere :verycool:


    Das ändert aber nichts an der Art und Weise, wie Du vorgehen solltest:

    1) Zuerst einmal alles in die main-Methode (nicht all zu viel Gedanken über OOP machen)

    2) Dann erst OOP angehen.

    Wenn Du nur die Weihnachtsferien Zeit hast, um den Stoff aufzuholen, dann kannst Du halt keine Zeit 2 Monate für Punkt 1) investieren ,sondern nur (Hausnummer) 7 Tage.
    Das bedeutet ja nicht, dass Du in diesen 7 Tagen ein heuristisches Optimierungsverfahren in die main-Methode quetschen musst. Du beschränkst dich halt auf einfache "Fingerübungen":
    *) Größtes Element in einem Array suchen
    *) prüfen, ob ein String einen positiven int-Wert repräsentiert
    *) Ziffernsumme eines positiven int-Wertes berechnen
    So etwas in der Art. Und gehst dann gleich zur OOP über.

    Ich will mich nicht aufdrängen, aber wenn Du, so wie Du sagst, noch nie programmiert hast, viel auf einmal aufholen musst, den Stoff aber auch einigermaßen verstehen willst, ich gebe Nachhilfe in Programmieren. Wenn Du interessiert bist, dann schick mir ein E-Mail: nachhilfe4U@gmx.at

  • ich danke dir :thumb: ist sehr nett von dir aber, da ich kein Bafög bekommen und auch keine Hilfe von der Stadt oder Eltern, kann ich mir eine Nachhilfe nicht leisten :rolleyes:

    Naja .. ich werde einfach Fragen stellen bis der Arzt kommt und irgendwann mal hab ich es drauf ;)

    GOTT hat bestimmt die Foren erschaffen, damit die armen mit der Hilfsbereitschaft der grosszügigen Menschen wie IHR, weiter kommen :engel:

    alsooo seid ihr bereeeitttt :devil:

    Danke :thumb:
    ciao :zwinker:

  • solltest du eventuell beispiele zum üben suchen:
    http://eprog.sourceforge.net/eprog/

    da findest du angaben und mögliche lösungen. das ist alles aus unserer lehrveranstaltung "einführung in das programmieren."

    manche haben auch ganz gute erklärungen zu ihren lösungen geschrieben. vielleicht hilfts war. :)

    nebenbei kann ich dir bücher "java ist auch eine insel" und "thinking in java" ans herz legen.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!