Methoden private int[] in main

Moin,

ich soll im Zuge einer Aufgabe ein Array mit private int[] array = {1,2,3,4,5,6}; erstellen und dieses dann an den Konstruktor eines Objektes übergeben, in welcher damit weitergearbeitet wird. Also quasi so: Klasse k = new Klasse(array);
Nur habe ich nun das Problem, dass die Main Methode ja static ist, das Array dagegen aber non-static. Wie kriege ich es hin, dass ich innerhalb der Main Methode dieses Array auch benutzen kann? Ich darf das Array nicht als static deklarieren.

Danke schonmal :)
 

mrBrown

Super-Moderator
Mitarbeiter
Vermutlich versuchst du das Array als Objektvariable zu deklarieren, das kannst du dann aus der statischen #main nicht aufrufen.
Das Array sollte besser nur lokal sein, also innerhalb der #main deklariert, dann muss es auch nicht static sein.
 
Vermutlich versuchst du das Array als Objektvariable zu deklarieren, das kannst du dann aus der statischen #main nicht aufrufen.
Das Array sollte besser nur lokal sein, also innerhalb der #main deklariert, dann muss es auch nicht static sein.

Ja das Array soll quasi in der main an das Objekt übergeben werden und dann im Konstruktor der anderen Klasse weiterverwertet werden.
Das Array an den Konstruktor der Klasse von dem ich eine Instanz mache (vielleicht falsch ausgedrückt, aber ihr wisst hoffentlich was ich meine :) ) sollte ja eigentlich so gehen:

Code:
Klasse k = new Klasse(array);

Nur steht in der Aufgabenstellung, dass ich das Array so deklarieren muss:

Code:
private int [] array = {1,2,3,4,5};

Berichtigt mich, falls ich das falsch verstanden habe, wie man eine Variable an den Konstruktor einer Klasse übergibt.
Ich poste nochmal meine ganze Hauptklasse sozusagen.
Code:
public class Mengen {

    private int[] set = { 1, 1, 2, 4, 5 };

    public static void main(String[] args) {

        IntSet s = new IntSet(set);
        IntSet h = new IntSet(set);


    }

}
 

Dompteur

Top Contributor
Ok das es so nicht funktioniert habe ich schon gemerkt :D . Ich hatte nur gedacht, dass es da irgendeinen Trick geben muss.

Aber danke euch für die Hilfe

Ich habe dein Programm ein wenig umgebaut:

Java:
public class Mengen {
    private int[] set = { 1, 1, 2, 4, 5 };

    public static void main(String[] args) {
        Mengen myApp = new Mengen();

        IntSet s = new IntSet(myApp.set);
        IntSet h = new IntSet(myApp.set);
    }
}
 

mrBrown

Super-Moderator
Mitarbeiter
Oder einfach ohne überflüssige Objekte:

Java:
public class Mengen {

   public static void main(String[] args){
        int[] set ={1, 1, 2, 4, 5};

        IntSet s =new IntSet(set);
        IntSet h =new IntSet(set);
   }

}
 
So wie mrBrown habe ich es jetzt auch gemacht und es funktioniert alles soweit.
Jetzt habe ich nur noch eine Verständnisfrage:

Innerhalb meiner Klasse IntSet habe ich eine Methode public void addAll(IntSet set){, welche ein Array erhält, dass ein überschriebenes (und leicht verändertes) set ist und parallel dazu über eine zweite Instanz ein weiteres Array bekommt und diese aufaddieren soll.
Meine Frage ist, wie kann ich jetzt mit diesem Array set weiterarbeiten? Ich kenne diese Übergabe methodenName(KlassenName variable) noch nicht. Leider kann ich mit der Variable in der Form nicht weiterarbeiten. z.B. funktioniert set.length nicht mehr, da set anscheinend kein richtiges Array mehr ist :confused:

Ist evtl etwas wirr geschrieben, deshalb hier nochmal die Methode (set2 soll dann eigentlich das zweite Array sein, ich muss mir aber noch überlegen wie ich das als zweite Instanz da rein kriege :D ):

Code:
public void addAll(IntSet set) {
        int[] result = new int[set.length + set2.length];
        System.arraycopy(set2, 0, result, set.length, result.length);
        int[] test = Arrays.copyOf(result, result.length);

    }
 
X

Xyz1

Gast
Java:
   public static void main(String[] args){
        IntSet s =new IntSet(new int[]{1,1,2,4,5});
        IntSet h =new IntSet(new int[]{1,1,2,4,5});
   }

So würd ich das machen, wenn ich das so machen müsste - der Compiler optimiert das dann.

Zu Frage 2. Du könntest result oder test - je nachdem, was das Ergebnis ist - zurückgeben lassen.

In C würde das mit Arrays als Rückgabetyp nicht funktionieren. :D
 
Da man hier anscheinend nicht editieren kann :D :
Ich habe das Problem jetzt folgendermaßen durch ausprobieren gelöst:
Code:
public void addAll(IntSet set) {
        int[] kek= this.set;
Damit erstelle ich ein neues Array mit dem Inhalt des im Konstruktor der Klasse überarbeiteten set's. Mit kek kann ich dann weiter arbeiten.
 
X

Xyz1

Gast
Bis jetzt ist unklar, was du machen möchtest? Arrays aufaddieren?? Kannst du es vielleicht natürlichsprachlich umschreiben, ohne Fachchinesisch einzubauen (wo es nicht eingebaut werden sollte).?
 
X

Xyz1

Gast
Ich rate einfach mal, aber übernehme keine Garantie für Schäden :D :
Java:
package javaapplication;

import java.util.*;

/**
* @author DW on 05.27.2016
*/
public class Temp {
    private int[] array;

    public Temp(int[] array) {
        this.array = array;
        computateArray();
    }

    public Temp() {
        this(new int[]{1, 2, 3, 4, 5, 6});
    }

    public static void main(String[] args) {
        Temp t = new Temp();
    }

    private void computateArray() {
        int[] three = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            three[i] = array[i] << 1;
        }
        System.out.println("three = " + Arrays.toString(three));
    }
}

Der Witz ist, das mit private int[] array = {1,2,3,4,5,6}; das Array schon initialisiert würde, und this(array); nicht funktionieren würde, denn: cannot reference array before supertype constructor has been called. :D
 

Dompteur

Top Contributor
Eure Lösungen des ursprünglichen Problems sind ja alle recht nett. Aber sie lösen die Anforderung nicht.
Im ersten Post steht:
ich soll im Zuge einer Aufgabe ein Array mit private int[] array = {1,2,3,4,5,6}; erstellen und dieses dann an den Konstruktor eines Objektes übergeben, ...

Es wird also ein nicht statisches private Objekt verlangt. Und das geht eben nur mit Instanzvariablen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
M Private Variable Java Basics - Anfänger-Themen 2
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
N JUnit und private Methoden testen. Java Basics - Anfänger-Themen 9
Z private Klassenvariablen Java Basics - Anfänger-Themen 8
S Private int in Klasse Java Basics - Anfänger-Themen 4
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
J Klasse wird als private erkannt obwohl sie public deklariert ist Java Basics - Anfänger-Themen 3
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
shiroX Klassen Klasse/Methode private final jUnit-Fehler Java Basics - Anfänger-Themen 5
N Instanzvariablen als private... Java Basics - Anfänger-Themen 2
A Private Attribut aus fremder Klasse lesen ? Java Basics - Anfänger-Themen 19
A Klassen Werte in den private Bereich übergeben Java Basics - Anfänger-Themen 5
C Collections: private Map Java Basics - Anfänger-Themen 4
M Wie private Methoden mit Asserstions testen? Java Basics - Anfänger-Themen 3
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
D Klassenvariablen standardmäßig private oder public? Java Basics - Anfänger-Themen 2
W private Array Loops Java Basics - Anfänger-Themen 4
B public/private nur 1x schreiben Java Basics - Anfänger-Themen 3
H Privat ist nicht mehr private Java Basics - Anfänger-Themen 7
J Vererbung Zugriff auf private Variable Java Basics - Anfänger-Themen 10
A Variablen lokale Variable als private? Java Basics - Anfänger-Themen 3
A private string array Java Basics - Anfänger-Themen 5
B auf private Variable durch eine Methode zugreifen Java Basics - Anfänger-Themen 8
J Probleme mit verschiedenen Private Klassen Java Basics - Anfänger-Themen 3
T public-private problem Java Basics - Anfänger-Themen 5
C Comparator und private Variablen Java Basics - Anfänger-Themen 7
K Methoden als private deklarieren? Java Basics - Anfänger-Themen 13
K Protected und Private Deklaration Java Basics - Anfänger-Themen 8
F Im Konstruktor mit Settern auf private Attribute zugreifen - oder nicht? Java Basics - Anfänger-Themen 18
B Kapselung Klasse private, Konstruktor protected Java Basics - Anfänger-Themen 10
H NEtBeans: Fehler: XXX has private access... Java Basics - Anfänger-Themen 2
K Kapselung public / private verständis problem Java Basics - Anfänger-Themen 17
E einfache Frage zu private Java Basics - Anfänger-Themen 26
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
W Private Methode variablen übergeben..?! WIE! Java Basics - Anfänger-Themen 30
K OOP Datenkapselung mittels private - length Attribut bei Array Java Basics - Anfänger-Themen 3
L Private Methode in Subklasse? Java Basics - Anfänger-Themen 2
S Private Class Problem Java Basics - Anfänger-Themen 17
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
Luk10 Vererben von private instanzvariablen Java Basics - Anfänger-Themen 20
P zugriff auf private variablen Java Basics - Anfänger-Themen 5
A Allgemeine Frage zur Sichtbarkeit "private" Java Basics - Anfänger-Themen 5
berliner Klassen Vererbung und Zugriff auf innere private Variable Java Basics - Anfänger-Themen 22
G field public/private wann Java Basics - Anfänger-Themen 11
Spin private Frage Java Basics - Anfänger-Themen 16
G Zugriff auf private Variablen einer inneren Klasse Java Basics - Anfänger-Themen 5
G Private Messages versenden Java Basics - Anfänger-Themen 13
S Zugriffe über Private Instanzvariablen Java Basics - Anfänger-Themen 3
J Public / Private Keys speichern bzw. lesen? Java Basics - Anfänger-Themen 8
R Private Methoden von auserhalb aufrufen Java Basics - Anfänger-Themen 2
N private variable vom typ einer klasse Java Basics - Anfänger-Themen 20
A in abstract Klasse private Variablen 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
P Private Klassen Java Basics - Anfänger-Themen 4
F Frage zur Vererbung und Zugriffmodifikator private Java Basics - Anfänger-Themen 3
S private public Java Basics - Anfänger-Themen 5
R private / public Frage Java Basics - Anfänger-Themen 7
S private String text; -> "Illegal start of expression Java Basics - Anfänger-Themen 7
R Klasse nicht sichtbar(kein private-Fehler) Java Basics - Anfänger-Themen 2
G Public ,private,protected Java Basics - Anfänger-Themen 1
R Private Klasse in Applet nutzen? Java Basics - Anfänger-Themen 9
B Instanzvariablen private? Java Basics - Anfänger-Themen 5
M Sichtbarkeit von private Java Basics - Anfänger-Themen 2
A public/private/etc. Zusatz weglassen Java Basics - Anfänger-Themen 2
M OOP frage, private variablen default-wert zuweisen sinnvoll? Java Basics - Anfänger-Themen 5
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
H Vererbung:private Java Basics - Anfänger-Themen 7
U public, private, protected und "default access" - Java Basics - Anfänger-Themen 14
T private final String oder final String? Was ist richtig? Java Basics - Anfänger-Themen 4
M Jede Variable als private, protected etc. deklarieren? Java Basics - Anfänger-Themen 7
U was macht "private" ? :) Java Basics - Anfänger-Themen 7
G private methode wird aus anderer klasse aufgerufen? Java Basics - Anfänger-Themen 3
megachucky wie bekomm ich ein private attribut aus einer andren klasse? Java Basics - Anfänger-Themen 18
H private anstatt public Java Basics - Anfänger-Themen 2
H public und private Java Basics - Anfänger-Themen 5
A Public/Private und wie importieren? Java Basics - Anfänger-Themen 13
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben