nichts verstanden

Status
Nicht offen für weitere Antworten.

Marfir

Aktives Mitglied
Hallo,

es gibt da einige Sachen die verstehe ich nicht, was vll auch daran liegt, dass ich das von anderen Programmiersprachen nicht gewöhnt bin.


1.
Wieso ist int und java.lang.Integer etwas anderes? Und wo ist da der Unterschied?

2.
Wieso kann ich einen Integer_to_String und umgedreht machen, aber keinen int_to_String und umgekehrt?

3.
Wieso kann ich keine Variablen die als public definiert sind, einer Funktion übergeben?
Wenn ich das mache ist die Variable immer null. Greife ich in der Funktion darauf zurück hab ich den richtigen Wert. Wieso ist das so umständlich?


Danke für eure Hilfe!
 

Oni

Top Contributor
moin,

Zu 1. int ist ein primitiver datentyp und Integer ist eine Klasse.

Zu 2. siehe 1. + wenn du mit solchen methoden arbeiten willst, müssen sie ja irgendwo definiert sein. das ist halt nur beim Integer der fall.

Zu 3. verstehe ich die frage nicht wirklich.
 

Oni

Top Contributor
Zu 3 nochmal.
meinst du das so? wieso sollte das nicht gehen?

Code:
public class Test(){
  
  public int zahl = 4;

  public Test(){
    tuWas(zahl);
  }

  public void tuWas(int wert){
    System.out.println("Wert = " + wert);
  }

  public static void main(String[] args){
    new Test();
  }
}
 

byte

Top Contributor
Marfir hat gesagt.:
1.
Wieso ist int und java.lang.Integer etwas anderes? Und wo ist da der Unterschied?

int ist ein primitiver Datentyp. Integer ist die Klassenrepräsentation von int und bietet noch einige nützliche Methoden im Umgang mit ints (siehe 2).

Marfir hat gesagt.:
2.
Wieso kann ich einen Integer_to_String und umgedreht machen, aber keinen int_to_String und umgekehrt?

Klar kannst Du int in String und umgekehrt umwandeln. Einen String bekommst Du über String.valueOf(int) oder über Integer.toString(int) (sind beide static). Umgekehrt gehts z.B. über Integer.parseInt(string) ... klappt natürlich nur, wenn der String auch umwandelbar ist.

3.
Wieso kann ich keine Variablen die als public definiert sind, einer Funktion übergeben?
Wenn ich das mache ist die Variable immer null. Greife ich in der Funktion darauf zurück hab ich den richtigen Wert. Wieso ist das so umständlich?

Klar geht das. Du machst was falsch. Siehe Post vorher...
 

Marfir

Aktives Mitglied
Ich poste später mal den Quelltext zu 3.. Vll findet Ihr den Fehler.
--------------------------------------------------------------------------------------

Mal was anderes:

Code:
if (i==0)
            {
                File quelle = new File("C:\\abc.txt");
            }
            else
            {
                File quelle = new File("C:\\xyz.txt");
            }
            
            if ((ziel.exists()==true) && (quelle.exists()==true))
            {
            ....

Wieso sagt er da, dass er quelle nicht kennt? Die Variable wird doch auf jeden Fall definiert! Nur der Inhalt ist unterschiedlich...
In anderen Sprachen geht das wunderbar.
 

Oni

Top Contributor
du legst die variable innerhalb der geschweiften klammern an, also ist sie auch nur das sichtbar.


probiers mal so:

Code:
File quelle = null;

if (i==0)
            {
              quelle = new File("C:\\abc.txt");
            }
            else
            {
               quelle = new File("C:\\xyz.txt");
            }
           
            if ((ziel.exists()==true) && (quelle.exists()==true))
            {
            ....
 

byte

Top Contributor
Mach:

Code:
File quelle;
if(foobar)
  quelle = ...;
else
  quelle = ...;

Variablen sind immer nur in der Klammerung gültig, in der sie deklariert sind.
 
B

bygones

Gast
nennt sich scope. Eine Variabel ist, einfach gesagt, immer nur in den Klammern die sie umgeben bekannt !
 

Marfir

Aktives Mitglied
Danke aber das ist doch doof! Wieso ist das so?
Ich meine rein logisch gesehen macht das keinen Sinn.

@ byto

Was macht "foobar"?
 

Oni

Top Contributor
foobar heißt soviel wie irgendwas.

es macht schon sind das die variable immer nur innerhalb einer klammer bekannt ist. sonst müsstest du dir immer wieder neue namen ausdenken, oder vorher den ganzen code durchsuchen um sicherzustellen das du nciht eine vorhande variable überschreibst.
 

The_S

Top Contributor
Ersetze foobar durch nen boolischen Wert ;).

Warum ist das unlogisch? Wenn du drinnen in deinem Haus bist sieht dich draußen auf der Straße ja auch keiner!
 

byte

Top Contributor
Der Sinn ist, dass Du Variablen nur in einem bestimmten Kontext benutzen kannst, wie z.B. in einer Schleife oder einer Methode. Danach kann die Variable wieder aus dem Speicher entfernt werden. Ansonsten hättest Du wohl ziemlich schnell einen StackOverflow oder ähnliches, wenn Variablen nie ihr Scope verlieren würden.
 

Marfir

Aktives Mitglied
Also wenn ich das mal mit VB vergleiche:

Definiere ich eine Variable in einer Funktion, ist die da innerhalb auch gültig. Also vorrausgesetzt die Definition steht vor dem benutzen der Variable.
Den Überblick verliert man nicht, wenn man alle Variablendefinitionen ganz am Anfang hinschreibt.

Naja dann muss ich mich halt wieder umgewöhnen. Danke für eure Hilfe!
 

The_S

Top Contributor
Bei VB isses genauso wie in Java ... :roll:

Variablen die der ganzen Klasse zur Verfügung stehen:

VB: Option Explizit
Java: am Anfang der Klasse einfach erstellen

Variablen die nur in einer Funktion oder Methode zur Verfügung stehen:

VB: am Anfang der Funktion erstellen
Java: am Anfang der Methode erstellen

Variablen die z. B. in einer Schleife erstellt werden

VB: ur in der Schleife gültig
Java: auch nur in der Schleife gültig
 

Bleiglanz

Gesperrter Benutzer
Auch bei VB.NET ist eine Variable, die zwischen IF und END IF deklariert wird nur dort sichtbar

ist btw guter stil, den scope "so klein wie möglich" zu machen und nicht gleich am Methodenanfang alle Variablen zu deklarieren
 
B

bygones

Gast
Marfir hat gesagt.:
Also wenn ich das mal mit VB vergleiche:

Definiere ich eine Variable in einer Funktion, ist die da innerhalb auch gültig. Also vorrausgesetzt die Definition steht vor dem benutzen der Variable.
Den Überblick verliert man nicht, wenn man alle Variablendefinitionen ganz am Anfang hinschreibt.

Naja dann muss ich mich halt wieder umgewöhnen. Danke für eure Hilfe!
hä ?
Code:
public void foobar() {
int x;

// egal was in dieser Funktion passiert, x ist immer in dieser Funktion bekannt
}
nix mit umgewöhnen !

Egal in welcher Programmiersprache man unterwegs ist, jede hat eine Scopedefinition und man sollte auch den Scope einer Variable IMMER so klein wie möglich halten - u.a der Übersicht willens !
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
R Dieser Code sagt mir nichts... Java Basics - Anfänger-Themen 4
W Warum wird mir nichts angezeigt? Netzwerkprogrammierung Java Basics - Anfänger-Themen 1
D Wenn ich repaint(); mache, flackert es so stark, das man fast nichts erkennen kann. Java Basics - Anfänger-Themen 11
L Es wird nichts gezeichnet??? Java Basics - Anfänger-Themen 2
S awt: paint Methode zeigt nichts an Java Basics - Anfänger-Themen 9
T In Konsole darf nichts falsches eingetippt werden?! Java Basics - Anfänger-Themen 7
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
T Methoden Nach der Schleife funktioniert nichts mehr Java Basics - Anfänger-Themen 7
O Methoden geben nichts zurück Java Basics - Anfänger-Themen 6
Henri run und bekomme ich nichts Java Basics - Anfänger-Themen 12
W IllegalArgumentException gibt nichts aus Java Basics - Anfänger-Themen 2
K Programm gibt nichts aus? Java Basics - Anfänger-Themen 2
Z Fürge nur ein JTextField ein und danach wird nichts mehr angezeigt Java Basics - Anfänger-Themen 3
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
K Code mit dem ich nichts anfangen kann Java Basics - Anfänger-Themen 10
B Nichts geht mehr Java Basics - Anfänger-Themen 10
S canvas zeichnet nichts Java Basics - Anfänger-Themen 7
I Es wird nichts in BufferedWriter geschrieben Java Basics - Anfänger-Themen 3
S Warum wird nichts gezeichnet? Java Basics - Anfänger-Themen 3
K Warum wird nichts angezeigt? Java Basics - Anfänger-Themen 5
A scan.nextLine() - Wenn man zu lange nichts macht, soll etwas passieren Java Basics - Anfänger-Themen 3
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
B Nichts passiert... Java Basics - Anfänger-Themen 4
C JDK-Installer macht nichts Java Basics - Anfänger-Themen 11
O Erste Schritte Mir nichts Sagende Fehlermeldung Java Basics - Anfänger-Themen 7
P Warum wird nichts gezeichnet? Java Basics - Anfänger-Themen 2
N String Stelle "nichts" Java Basics - Anfänger-Themen 3
H datei wird zwar erstellt, aber nichts geschrieben Java Basics - Anfänger-Themen 2
T setMaximumSize bewirkt nichts Java Basics - Anfänger-Themen 4
D setAlwaysOnTop(true); toFront(); - bringt alles nichts Java Basics - Anfänger-Themen 5
S Warum zeigt das Label nichts an??? Java Basics - Anfänger-Themen 9
D KeyListener, nichts passiert Java Basics - Anfänger-Themen 6
I KeyEvent macht nichts.^^ Java Basics - Anfänger-Themen 3
B Calculator Fehlermeldung ich finde aber nichts? Java Basics - Anfänger-Themen 2
K println schreibt nichts auf das Display Java Basics - Anfänger-Themen 3
C GUI aktualisieren: repaint, validate, Fenstergröße ändern bringt nichts Java Basics - Anfänger-Themen 13
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
I JPanel zeigt nichts an durch Klicken auf das Button. Java Basics - Anfänger-Themen 20
A compiler gibt nichts aus Java Basics - Anfänger-Themen 12
I Arrayobjekt - nichts ausgegeben Java Basics - Anfänger-Themen 5
X Tausendmal gesehen. Resources finden - nichts hilft Java Basics - Anfänger-Themen 3
D Kann noch fast nichts, funktioniert auch fast nichts! Java Basics - Anfänger-Themen 8
K Nichts geht mehr in Eclipse Java Basics - Anfänger-Themen 2
J JDialog zeigt nichts an Java Basics - Anfänger-Themen 4
I JtextArea zeigt nichts an! Java Basics - Anfänger-Themen 3
K rattert, aber zeigt nichts an Java Basics - Anfänger-Themen 8
P Methode soll nichts erzeugen bei fehlenden Angaben Java Basics - Anfänger-Themen 6
H Warum gibt er mir nichts aus! Java Basics - Anfänger-Themen 2
H Server Client, es kommt nichts an. Java Basics - Anfänger-Themen 5
D Java Software zeigen nichts mehr an Java Basics - Anfänger-Themen 2
G Fehlermeldung - Kann leider nichts damit anfangen Java Basics - Anfänger-Themen 3
L Compilieren funktioniert, aber beim öffnen kommt nichts Java Basics - Anfänger-Themen 7
C NullPointerException, aber nichts darf null sein? Java Basics - Anfänger-Themen 7
L Appletviewer zeigt nichts an Java Basics - Anfänger-Themen 2
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
G rekursion nicht verstanden Java Basics - Anfänger-Themen 5
C Erste Schritte Exceptions nicht verstanden Java Basics - Anfänger-Themen 2
J Aufgabe(Threads) richtig verstanden/implementiert Java Basics - Anfänger-Themen 27
D Quelltext richtig verstanden? Java Basics - Anfänger-Themen 7
R OOP Den Schritt von Theorie zur Praxis nicht verstanden Java Basics - Anfänger-Themen 21
I Module und Testumgebung noch nicht verstanden... Java Basics - Anfänger-Themen 6
R Java verstanden, Compiler nicht Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben