public static void

Status
Nicht offen für weitere Antworten.
N

Newbieed

Gast
folgender code:
Code:
import java.util.Random;

public class Test
{   public static void main (String args[])  <- punkt 1
    {   Random r=new Random();
        int count=0;
        while (true)
        {   int w=(r.nextInt()%6)+1;
            count++;
            if (w==6) break;
        }
        System.out.println(count+" Würfe bis zur ersten 6.");
    }
}


kann mir jemand diese zeile erklären, INSEBSONDERE warum in den klammer Strin args[] steht und was es heisst.


wäre nett thx

[/code]
 
B

Beni

Gast
Code:
public class Test{
   public static void main (String[] args)  <- punkt 1{
     Random r=new Random();

public : ist von überall her sichtbar (im Gegensatz zu protected oder private)
static : ist nicht an eine Instanz (=Objekt), sondern an die Klasse gebunden. (Siehe FAQ, "was bedeutet static")
void : Die Methode hat keinen Rückgabewert (im Gegensatz zu, z.B. "int", "Point", "String[]", ... )
main : Der Name der Methode
String[] args (=String args[]) : Ein Array (lineare Liste) von String-Objekten.

main( String[] args ) : Die Methode "main" muss man einen String-Array als Argument übergeben.
 
N

newbieee

Gast
ok thx !


versths zwar so wirklich nicht aber hoffe das kommt bei der praxis:

ich wollte einen stack simulieren.

das heisst elemente drauf schieben und wegnehmen.

da hab ich mir gedacht eine klasse stack zu machen

mit den methoden push und pull und showelementontop ( zeigt das oebrsteelement ) elemente sind int typen.

der stack is ne array das is klar, frage muss ich die max anzahl an elementen vorgeben ?

falls nein:

wenn ich eine funktion haben will die mir die anzahl der momenmtan elementen returned also anzeigt,

muss ich ja ne while do schleife machen.

problem wie sieht die abbruchbedingung aus wenn ich die momentane anzahl ja gar nicht kenne ??

sollte ich eine zähler variable für die klasse benutzen ? stack.activeelements
die bei push erhöht wird und bei pull erniedrigt ??

wie würdet ihr das machen ?

wisst ihr was ich mit stack programmieren meine ?


thx :autsch:
 
B

Beni

Gast
newbieee hat gesagt.:
versths zwar so wirklich nicht aber hoffe das kommt bei der praxis:
Ganz sicher :wink:

newbieee hat gesagt.:
ich wollte einen stack simulieren.
Löblich löblich

newbieee hat gesagt.:
das heisst elemente drauf schieben und wegnehmen.
Das ist gut so :D

newbieee hat gesagt.:
da hab ich mir gedacht eine klasse stack zu machen
Jaja...

newbieee hat gesagt.:
mit den methoden push und pull und showelementontop ( zeigt das oebrsteelement ) elemente sind int typen.
Wieso "int typen"? Objekte sind viel vielseitiger, na egal, es geht ja nur um das Üben.

newbieee hat gesagt.:
der stack is ne array das is klar, frage muss ich die max anzahl an elementen vorgeben ?
Wieso ist das klar? Es gibt andere Möglichkeiten... :bae: (ich sag nur: LinkedList)
Die maximale Anzahl: das ist ein Designentscheid, aber grundsätzlich kannst du einen "theoretisch unendlichen" Stack ohne allzugrossen Aufwand schreiben.

newbieee hat gesagt.:
nein :D

Du kannst jederzeit einen neuen, grösseren Array herstellen, und die Elemente rüberkopieren... (den alten Array mit dem neuen ersetzen)

Dabei ist nur wichtig, dass niemand von aussen an den Array rankommt (er muss eine "private" Instanzvariable sein)

newbieee hat gesagt.:
wenn ich eine funktion haben will die mir die anzahl der momenmtan elementen returned also anzeigt,
Das ist immer eine gute Idee

newbieee hat gesagt.:
muss ich ja ne while do schleife machen.
Nöööö :D

newbieee hat gesagt.:
problem wie sieht die abbruchbedingung aus wenn ich die momentane anzahl ja gar nicht kenne ??
Brauchste nicht.

newbieee hat gesagt.:
sollte ich eine zähler variable für die klasse benutzen ? stack.activeelements
die bei push erhöht wird und bei pull erniedrigt ??
Jaaaa! Das ist viel besser als irgendeine Schlaufe. Die 4 Bytes die du dabei mehr benötigst, fallen praktisch nicht ins Gewicht.
Aber Vorsicht: nur die Klasse "Stack" sollte Zugriff auf die "activeelements" haben (hm, ein kürzerer Name wäre auch praktisch, als Vorschlag "size"?), d.h. die Variable muss "private" sein.
Dann machst du nur eine Methode "getSize". Ansonsten kommt noch jemand auf die Idee die Grösse auf -156 zu setzen...

newbieee hat gesagt.:
wie würdet ihr das machen ?
Ziemlich ähnlich. Es gibt ja auch nicht allzuviele Varianten einen Stack zu programmieren (sonst ist's kein Stack mehr)

newbieee hat gesagt.:
wisst ihr was ich mit stack programmieren meine ?
Denke schon :D

mfg Beni
 
N

neubiee

Gast
hab mir grad gedacht !

wenn ich ein array definiere gibts doch automatisch ne funktion die mir die anzahl der elemente zeigt oder ?

bsp:

int testarray[] = new int[] <- richtig ?
system.out.println (testarray.getsize) <- ich glaub das getsizeist ebstandteil einer array klasse ? ist array überhaupt eine klasse ?

für strings gibts ja auch ne funktion die die länge zurüchgibt oder:getlength oder so.

ich meine ich hab irgendwo davon in bezu auch auf arrays gelesen.

kann dat sein?


thx for help :D
 
R

Roar

Gast
ein Array ist i nder java VM auch ein Objekt. ein Array beinhaltet ein statisches feld length mit der länge des arrays
 
B

Beni

Gast
Du meinst wohl das hier:

Code:
int[] array = new int[ 15 ]; // Die Länge musst du angeben!
int length = array.length;  // == 15

Aber nicht verwechseln: das ist die Länge des Arrays, nicht die Anzahl Elemente im Array!
 

Illuvatar

Top Contributor
Bevor du dir was falsches angewöhnst:
Gerade, weil int[] auch ein Objekttyp ist, ist die eigentliche Java-Syntax das hier:
Code:
int[] testarray = new int[5];
testarray[] wurde nur eingeführt, damit C-Entwickler nicht umdenken müssen.
 

L-ectron-X

Gesperrter Benutzer
neubiee hat gesagt.:
int testarray[] = new int[] <- richtig ?
Fast. Es fehlt die Initialisierung der Array-Größe:
Code:
int[] myArray = new int[5];
Die Größe eines Arrays gibt das Feld length zurück.
Code:
int i = myArray.length; //ohne Klammern
für strings gibts ja auch ne funktion die die länge zurüchgibt oder:getlength oder so.
Code:
int i = str.length();


Edit: Da sind wir uns offenbar einig. :lol:
 
G

Guest

Gast
noch was


hab gerad gelesen die methode equals ist von der Klasse Object, zu der so wie ich das verstanden hab alle Klassen gehören. deshalb kann man mit equals alles vergleichen. <- das versteh ich net

Wenn ich Strings vergleiche und Zahlen miteinander vergleiche kann ich doch net ein und dieselbe Methode nehmen oder doch oder wie oder was :lol: !!

ist Object also die Klasse aller Klassen oder wie ?

[Edit by Beni: ~20 Rechtschreibefehler eliminiert]
 
B

Beni

Gast
Es geht dabei um das "Überschreiben" (du benutzt nicht immer dasselbe "equals", obwohl du das gar nicht bemerkst).

Versuchs mal:
Code:
public class A{
  public void print(){
    System.out.println( "A" );
  }
}

Code:
public class B extends A{
  public void print(){
    System.out.println( "B" );
  }
}

Code:
public class Main{

  public static void main( String[] args ){
    check( new A() );
    check( new B() ); // Da B ein A ist, übergibt man hier ja ein A und kein B :-)
  }

  public static void check( A a ){
    a.print();  // welches "print" wird hier tatsächlich aufgerufen?
  }
}

Ausgabe:
A
B


Ich möchte niemandem verbieten zu fragen / zu antworten, aber es wäre vielleicht besser, wenn du einfach mal dein Buch/Bücher etwas studierst. Diese "alle-5-Minuten-Fragen-weil-zu-faul-zum-selberdenken" sind nicht so dolle, und ich bin ganz sicher, dass das alles in deinem Buch steht.
 

Hoschi49

Mitglied
ja dat isses ja ich lese in mehreren tutorialen ( siehe eure links im bücher forum)

aber es ergeben sich für mich fragen die da net beantworten werden.

problem is auch in diesem tut steht was wir dnicht erklärt und in irgendeinem anderen stehts dann erklärt!

von diesem hinund her hab ich schon kopfschmerzen.

ich bin leider jemand der sop lernt: du machen ich gucken ich verstehen ich machen :lol:

und nicht lesen lesen fragen lesen ->verstehen ->machen :bae:

na ja ich vertsteh auch nicht warum static public void main()

nicht als "hauptprogramm" verstanden werden kann von dem alles gesteuert wird.

hab code gefunden mit 2 klassen eine mit main eine ohne.

in main ist keine verbindung zu der anderen trotzdem wird diese ausgeführt !?!

ich poste den code bald
 
G

Guest

Gast
Such am besten mal unter Google nach Javainsel 3. Das ist ein gutes Buch über Java.
 

Reality

Top Contributor
Wegen dem Stack:

Code:
//Diese Klasse definiert einen Integer-Stack, der 10 Werte aufnehmen kann

public class Stack {

  int stck[]= new int[10];
  int tos;

  //Initialisiere das oberste Element im Stack
  Stack()
  {
  tos =-1;
  }

  void push(int item)
  {
  if(tos==9)
    System.out.println("Stack ist voll");

  else
  stck[++tos]= item;
  }

  int pop()
  {
    if(tos < 0)
    {
    System.out.println("Stack-Underflow.");
    return 0;
    }

  else
    return stck[tos--];
  }

  public static void main(String[] args) {

  Stack stck1= new Stack();
    for(int i=0;i<10;i++)
    {
    stck1.push(i);
    System.out.println(stck1.stck[i]);
    }

  stck1.pop();
  stck1.pop();
  }
}

Wenn du willst, dass der Stack sich automatisch vergrößert, dann machst du das mit einer if-Anweisung. Wenn Stack gleich voll, dann verdopple Stack-Größe.

Liebe Grüße
Reality
 
N

newbie121

Gast
HI !


thx erstmal !


was ist wenn ich diese klasse in einem anderen programm verwenden will ?

mich irritiert die publiv void main () methode da, ich dachte in´einer klasse definiere ich variablen un methoden und nicht auch noch ein hauptprogramm sozusagen.

wenn ich mir meine eigene klassensammluing anlegen will würde dann das publich void main() immer noch da stehen ??

eigentlich brauch man es doch gar nicht.
in system.out.println ist bestimmt auch kein hauptprogramm das z.b. "hello world " ausgibt oder ?


thx
 

Illuvatar

Top Contributor
Wenn du ein Programm hast, dann brauchst du irgendwo eine Klasse mit der main-Methode. Die sieht bei mir meistens so aus:
Code:
import main.*;

public class Main
{
	public static void main (String[] args)
    {
/*Hier ist bei mir meistens noch die Initialisierung einer Debug-Konsole, wenn das Programm mit -debug aufgerufen wird*/
             new Control(args);
    }
}
Edit: Es dürfen auch mehr sein, aber das Programm kann ur an einer Stelle starten... :wink:
Edit2: Erster :bae:
 
B

Beni

Gast
newbie121 hat gesagt.:
mich irritiert die publiv void main () methode da, ich dachte in´einer klasse definiere ich variablen un methoden und nicht auch noch ein hauptprogramm sozusagen.
Das "psv main" ist eine ganz normale Methode, wie jede andere auch. Nur wird sie halt als erste aufgerufen, aber das gibt ihr keinen "Sonderstatus" oder so.

newbie121 hat gesagt.:
wenn ich mir meine eigene klassensammluing anlegen will würde dann das publich void main() immer noch da stehen ??

eigentlich brauch man es doch gar nicht.
Du kannst es ja wieder löschen :wink:
Aber es würde keinen Schaden anrichten, wenn es immer noch dasteht. Es wird halt einfach nie aufgerufen (war dann wohl nur für Testzwecke da. Such mal im SDK nach "main"...)

Schlussendlich übergibt man der VM ja den genauen Pfad zu einem "main" (inkl. Klasse), also ist jedes "main" von den anderen unterscheidbar (nix mit verwechseln).
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
E Methoden public static void main(String[] args) Java Basics - Anfänger-Themen 9
C public static void main(String[] args) Java Basics - Anfänger-Themen 6
D Frage zu public static void main. Java Basics - Anfänger-Themen 4
G Vor oder hinter public static void main. ? Java Basics - Anfänger-Themen 8
G Was ist public static void main(String[] args)? Java Basics - Anfänger-Themen 12
M public static void main(String... args)<- Was bedeutet das? Java Basics - Anfänger-Themen 5
A die public static void main ? Java Basics - Anfänger-Themen 3
N public static void main(String args[]) Java Basics - Anfänger-Themen 6
P Was genau bedeutet "public static void main(String[] ar Java Basics - Anfänger-Themen 10
J public static void main? Java Basics - Anfänger-Themen 5
G public static void main(final String[] args) Java Basics - Anfänger-Themen 4
X Was genau heißt "public static void main(String[] args) Java Basics - Anfänger-Themen 4
B public static void main (String[] args) ??? Java Basics - Anfänger-Themen 2
G getParameter in public static void main Java Basics - Anfänger-Themen 3
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
S public static boolean Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
S Frage zu public static Java Basics - Anfänger-Themen 29
Hamstinator public static. Gute Idee? Java Basics - Anfänger-Themen 6
-horn- public static double[][][] NAME() nur per RETURN Wertrückgabe möglich? Java Basics - Anfänger-Themen 20
O Unterschied zwischen static und public Java Basics - Anfänger-Themen 2
V public nachträglich in public static umwandeln /JFormDesigne Java Basics - Anfänger-Themen 5
C Kann mir jemand sagen warum public void unzulässig ist? Java Basics - Anfänger-Themen 2
Say public/default Interface Java Basics - Anfänger-Themen 9
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
melaniemueller Datenkapselung Sichtbarkeit public Java Basics - Anfänger-Themen 4
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
J Methoden Methoden einer public class AutoCompleteTextField verwenden Java Basics - Anfänger-Themen 14
G Klassen Mit fremder Klasse auf public Methode zugreifen Java Basics - Anfänger-Themen 23
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
Javafan01 Dateiname und Public class Java Basics - Anfänger-Themen 4
A Methoden Unterscheid zwischen public und ohne Java Basics - Anfänger-Themen 9
J Klasse wird als private erkannt obwohl sie public deklariert ist Java Basics - Anfänger-Themen 3
L RSA Public Key einlesen Java Basics - Anfänger-Themen 0
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
T Variablen Getter-Setter vs Public Variable? Java Basics - Anfänger-Themen 5
K modifier public Java Basics - Anfänger-Themen 3
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
D Klassenvariablen standardmäßig private oder public? Java Basics - Anfänger-Themen 2
T Java Code Hilfe - public void xxx() Java Basics - Anfänger-Themen 2
T public void - Problem Java Basics - Anfänger-Themen 10
B public/private nur 1x schreiben Java Basics - Anfänger-Themen 3
N Java UML: Eine Frage zu public-Variablen Java Basics - Anfänger-Themen 19
T public-private problem Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
C Erste Schritte felder, die public final sind Java Basics - Anfänger-Themen 6
B main methode ohne public Java Basics - Anfänger-Themen 5
W Frage public protected konstruktor Java Basics - Anfänger-Themen 6
V public Variablen vs Getter + Setter Java Basics - Anfänger-Themen 4
J "public int x" - Zugriff von anderer Klasse (selbes Package) nicht möglich?! Java Basics - Anfänger-Themen 4
O Was bedeutet public class value? Java Basics - Anfänger-Themen 3
I Methoden Problem If/Else; Public Void Java Basics - Anfänger-Themen 6
K Kapselung public / private verständis problem Java Basics - Anfänger-Themen 17
S Warum sind Attribute der Klasse java.awt.Point public? Java Basics - Anfänger-Themen 3
K OOP Attribute von Klasse in die public class übertragen? Java Basics - Anfänger-Themen 7
T Kapselung: public-Methoden in protected-Klassen Java Basics - Anfänger-Themen 3
F public variable erstellen, & darauf zugreifen Java Basics - Anfänger-Themen 12
B Variablen Variablen in try / catch "public" machen? Java Basics - Anfänger-Themen 3
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
B Public boolean einfügen Java Basics - Anfänger-Themen 12
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
R jLabel lässt sich nicht public setzen?? Java Basics - Anfänger-Themen 15
S Public-Klassen und Dateien Java Basics - Anfänger-Themen 5
StickToFreak Fehler mit public class Java Basics - Anfänger-Themen 13
K konstruktur als public definieren Java Basics - Anfänger-Themen 11
StickToFreak public class problem ôÔ Java Basics - Anfänger-Themen 3
G field public/private wann Java Basics - Anfänger-Themen 11
H eine als public deklariete Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
T Konstruktor mit oder ohne public-Bezeichner? Java Basics - Anfänger-Themen 4
T Geht so was? public void verkaufe (<X implements Produkt& Java Basics - Anfänger-Themen 8
P immer "public class". ? Java Basics - Anfänger-Themen 4
J Public / Private Keys speichern bzw. lesen? Java Basics - Anfänger-Themen 8
A kein zugriff auf variable trotz public? Java Basics - Anfänger-Themen 3
J public class Java Basics - Anfänger-Themen 15
N Wann muss eine Methode - protected sein wann public wann. Java Basics - Anfänger-Themen 5
G (Anfängerproblem) Problem mit dem Aufruf von public-Methoden Java Basics - Anfänger-Themen 3
D Zugriff auf attribut anderer Klasse privat/public? Java Basics - Anfänger-Themen 9
B Warum manchmal public class und manchmal nur class Java Basics - Anfänger-Themen 3
A Javadoc nur bei public Klassen? Java Basics - Anfänger-Themen 3
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
P public enum ";"expected Java Basics - Anfänger-Themen 7
B public und protected Java Basics - Anfänger-Themen 11
G <identifier> expected bei public void final Java Basics - Anfänger-Themen 3
G GUI Controls private oder public Java Basics - Anfänger-Themen 6
G Variablen public oder private? Java Basics - Anfänger-Themen 9
R public Klassen Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben