Pokaż wyniki 1 do 9 z 9

Temat: Zmienne w metodach klasy

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie Zmienne w metodach klasy

    Mam takie pytanie teoretyczne do programistów Javy:

    Powiedzmy, że mamy klasę i w niej 2 metody. W metodzie 1 mam zadeklarowaną zmienną i nie mogę jej użyć w metodzie nr 2;

    public przed inicjacją też nie pomaga - czy to taka właściwość czy ja coś źle robię ?


    PS: Obszedłem problem poprzez przekopiowanie do zmiennej globalnej poza metodami, ale nie podoba mi się taki styl xD
    Extraterrestrial plant

  2. #2

    Domyślnie

    Zawsze mozesz zmienic na private jesli nie chcesz zeby nic oprocz klasy mialo dostep do zmiennej badz metody lub protected jesli chesz zeby zmienna badz metoda byla dzedziczona nie widze zadnego problemu...

  3. #3

    Domyślnie

    Szymkraw problem w tym, że wszystkie metody używane są w obrębie tej samej klasy.

    Jak zdeklarujesz zmienną w klasie to mają dostęp wszystkie metody tej klasy, ale jak już zdeklarujesz zmienną w metodzie to nie mogę użyć jej w innej metodzie tej samej klasy.
    Extraterrestrial plant

  4. #4

    Domyślnie

    No ale w czym Ty masz problem? ^^

  5. #5

    Domyślnie

    chyba taki, że zmienne jako publiczne/priv etc. można zadeklarować w danej klasie poza metodami. Jeśli zadeklarujesz je w metodzie klasy to będą zawsze prywatne dla tej metody i nie będą mogły ich używać inne metody tej samej klasy.
    Extraterrestrial plant

  6. #6
    Zarejestrowany
    Oct 2008
    Skąd
    woj. Lubuskie. Dokładniej się nie da
    Postów
    405

    Domyślnie

    Cytat Napisał Elitegroup Zobacz post
    chyba taki, że zmienne jako publiczne/priv etc. można zadeklarować w danej klasie poza metodami. Jeśli zadeklarujesz je w metodzie klasy to będą zawsze prywatne dla tej metody i nie będą mogły ich używać inne metody tej samej klasy.
    Ajć, skoro by było jak piszesz, oznaczałoby to że nasz przedmówca nie rozumie podstaw języków c-like i nie tylko, a mianowicie zmienne deklarowane wewnątrz bloku (w c-like między klamerkami) umierają po opuszczeniu tegoż. A skoro tak, nie wiem czy można mówić o jakimkolwiek specyfikatorze dostępu. Nie mówi się tu o prywatności czy publiczności - to po prostu zmienna lokalna.

    Jeżeli zmienna ma być widoczna poza metodą, musi być zadeklarowana na zewnątrz jej. W większości przypadków - jako składowe ("pola") klasy. Tak samo sprawa dotyczy (i podejrzewam tu jest pies pogrzebany) obiektów tworzonych w obrębie metody. One również przestają istnieć. Rozwiązaniem podejrzewam byłoby tu użycie statycznej zmiennej klasy. Ta nie znika wraz z obiektem nawet.

    Co do obejścia w edicie - dla języków najwyższego poziomu (tych z gc) nie ma pojęcia zmienna globalna (obchodzi się w postaci statycznych zmiennych w statycznej klasie). Pewnie człowiek miał na myśli zmienne będące właśnie częścią klasy. A może jednak udało mu się wykombinować rzeczywiście globalne zmienne w javie?
    Jeśli nie będziesz mieć pod górke, nigdy nie dojdziesz na szczyt.

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj