Как я могу использовать мой массив объектов в каждом методе? - PullRequest
0 голосов
/ 18 октября 2018

Я все еще изучаю Java.Я работаю над массивом объектов.Тяжелая тема для меня.Потому что я никогда не использовал язык программирования ООП, поэтому это толкает меня сильнее.У меня сейчас проблема.

это мой основной код

package deneme;
import java.util.Scanner;
public class Deneme {
static int index=0;
public static void main(String[] args) 
{           
    menu();  
}

public static void menu()
{
    int secim=0;
    Scanner menuSecim = new Scanner(System.in);
    System.out.println("Pazar Listesine Hoşgeliniz.");
    System.out.println("Menu");
    System.out.println("1. Listeyi Görüntüle");
    System.out.println("2. Listeye Ekle");
    System.out.println("3. Listeden Sil");
    System.out.println("4. Çıkış");
    System.out.print("Seçiminiz: ");
    secim = menuSecim.nextInt();
    if(secim==1)
    {

    }
    else if(secim==2)
    {//listeye ekleme
        int eklenilmekIstenen;
        Scanner sayi = new Scanner(System.in);
        System.out.print("Kaç Adet Ürün Eklemek İstiyorsunuz: ");
        eklenilmekIstenen=sayi.nextInt();
        listeyeEkle(eklenilmekIstenen);
    }

}
public static void listeyeEkle(int eklenecekSayisi)
{
    Scanner str = new Scanner(System.in);
    Scanner sayi = new Scanner(System.in);
    PazarListesi[] urun = new PazarListesi[300];
    for(int i=0; i<urun.length;i++)
    {
        urun[i] = new PazarListesi();
    }

    for(int j=index;j<(index+eklenecekSayisi);j++)
    {
        System.out.print((j+1)+". Ürünün Adı: ");
        urun[j].isim = str.nextLine();
        System.out.print((j+1)+". Ürünün Miktarı: ");
        urun[j].miktar = sayi.nextFloat();
        System.out.print((j+1)+". Ürünün Fiyatı(Kg Bazında): ");
        urun[j].fiyat = sayi.nextFloat();
    }
    index=index+eklenecekSayisi;
    System.out.println("Şu an ki İndex: "+index);
    for(int j=0;j<index;j++)
    {
        System.out.println((j+1)+". Ürünün Adı: "+urun[j].isim);
        System.out.println((j+1)+". Ürünün Miktarı: "+urun[j].miktar);
        System.out.println((j+1)+". Ürünün Fiyat: "+urun[j].fiyat);
    }
    menu();
}
public static void hepsiniGor()
{
    PazarListesi[] urun = new PazarListesi[300];
    for(int i=0; i<urun.length;i++)
    {
        urun[i] = new PazarListesi();
    }
    tutarHesapla();

}
public static void listedenSil()
{

}
public static void tutarHesapla()
{
    PazarListesi[] urun = new PazarListesi[300];
    for(int i=0; i<urun.length;i++)
    {
        urun[i] = new PazarListesi();            
    }
    for(int i=0;i<index;i++)
    {
        urun[i].tutar=urun[i].miktar*urun[i].fiyat;
    }
}

}

это следующий класс объектов

package deneme;
import java.util.Scanner;
public class PazarListesi 
{
Deneme giris = new Deneme();
String isim;
float miktar;
float fiyat;
float tutar;

}

Iиспользовать этот блок в каждом методе для доступа к созданному мною объекту.

    PazarListesi[] urun = new PazarListesi[300];
    for(int i=0; i<urun.length;i++)
    {
        urun[i] = new PazarListesi();            
    }

Как получить доступ к объекту без записи этого блока?

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

На основании предоставленного вами кода и того, что я понимаю из вашего вопроса, попробуйте следующее:

public class Deneme {
    private static int index = 0;
    private static PazarListesi[] urun;

    public static void main(String[] args) {

        urun = new PazarListesi[300];

        for (int i = 0; i < urun.length; i++) {
            urun[i] = new PazarListesi();
        }

        menu();
    }

    public static void menu() {
        int secim = 0;
        Scanner menuSecim = new Scanner(System.in);

        System.out.println("Pazar Listesine Hoşgeliniz.");
        System.out.println("Menu");
        System.out.println("1. Listeyi Görüntüle");
        System.out.println("2. Listeye Ekle");
        System.out.println("3. Listeden Sil");
        System.out.println("4. Çıkış");
        System.out.print("Seçiminiz: ");
        secim = menuSecim.nextInt();

        if (secim == 1) {
            //
        } else if (secim == 2) {//listeye ekleme
            int eklenilmekIstenen;
            Scanner sayi = new Scanner(System.in);
            System.out.print("Kaç Adet Ürün Eklemek İstiyorsunuz: ");
            eklenilmekIstenen = sayi.nextInt();
            listeyeEkle(eklenilmekIstenen);
        }
    }

    public static void listeyeEkle(int eklenecekSayisi) {
        Scanner str = new Scanner(System.in);
        Scanner sayi = new Scanner(System.in);

        for (int j = index; j < (index + eklenecekSayisi); j++) {
            System.out.print((j + 1) + ". Ürünün Adı: ");
            urun[j].isim = str.nextLine();
            System.out.print((j + 1) + ". Ürünün Miktarı: ");
            urun[j].miktar = sayi.nextFloat();
            System.out.print((j + 1) + ". Ürünün Fiyatı(Kg Bazında): ");
            urun[j].fiyat = sayi.nextFloat();
        }

        index = index + eklenecekSayisi;
        System.out.println("Şu an ki İndex: " + index);

        for (int j = 0; j < index; j++) {
            System.out.println((j + 1) + ". Ürünün Adı: " + urun[j].isim);
            System.out.println((j + 1) + ". Ürünün Miktarı: " + urun[j].miktar);
            System.out.println((j + 1) + ". Ürünün Fiyat: " + urun[j].fiyat);
        }

        menu();
    }

    public static void hepsiniGor() {
        tutarHesapla();
    }

    public static void listedenSil() {
        //
    }

    public static void tutarHesapla() {
        for (int i = 0; i < index; i++) {
            urun[i].tutar = urun[i].miktar * urun[i].fiyat;
        }
    }
}

Извлекает инициализацию класса модели в main, поэтому вам не нужноПовторите это в каждом методе.

0 голосов
/ 18 октября 2018

Я не мог точно понять ваш вопрос, но следующий код может помочь вам, я думаю.Вы можете создавать методы для установки значений объектов массива и получения значений объектов массива.

public class PazarListesi  {
    String isim;
    float miktar;
    float fiyat;
    float tutar;

    public String getPazarListesiIsim() {
        return this.isim;
    }

    public void setPazarListesiIsim(String paramString) {
        this.isim = paramString;
    }
//Add methods for other variables too
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...