Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 21 odgovor
  • 6.609 pregleda

Najnovija ↓

Re: Struktura Class-e 28.10.2017. u 14:01 · pre 109 meseci #21
Dobro de, nemojte se pocupati :)
Znaci ako sam razumeo ne moram da brinem oko unistavanja veze sa objektom (ja cu to tako da nazove a vi zovite kako hocete), i nece se desiti posle unosa 1000 menica da u memoriji imam nekih 1000 cuvanja podataka za tih 1000 menica koji mi nisu ni potrebni. Tacnije gore prikazan nacin rada je sasvim ok?

Ono sto me buni je kako on dovraga zna da meni vise taj objekat nece biti potreban? Npr ako sam samo napisao
Code:
Menica("AB1234564")

u klasi je promenjiva brojMenice dobila vrednost AB1234564.

Sta ako ja sad u programu radim nesto drugo i posle x linija koda pozovem (GET) Menica.brojMenice. Kako ce racunar da zna da li moju vezu Menica("AB1234564") moze u nekom trenutku da obrise jer meni vise nece trebati ili ne moze?

Primera radi ja pozovem:
Code:
Menica("AB1234561").Add ThisWorkbook.ActiveSheet
Menica("AB1234562").Add ThisWorkbook.ActiveSheet
Menica("AB1234563").Add ThisWorkbook.ActiveSheet
Menica("AB1234564").Add ThisWorkbook.ActiveSheet
Menica("AB1234565").Add ThisWorkbook.ActiveSheet
Menica("AB1234566").Add ThisWorkbook.ActiveSheet
Menica("AB1234567").Add ThisWorkbook.ActiveSheet


Po prirodi programa ni jedna od ovih veza posle izvrsenja mi vise nije potrebna. Ali ko moze da garantuje da ja u jednom trenutku necu pozvati neku rutinu za Menica("AB1234565").Delete koju sam npr kreirao u toj klasi.Na osnovu cega VBA odlucuje kada neku vezu moze da obrise a kada ne (osim pri gasenju programa)?

Ustvari, mozda mi je kliknulo. Kad se izvrsi ova celina Menica("AB1234567").Add ThisWorkbook.ActiveSheet, funkcija je zavrsena i posto sam novi objekat kreirao u funkciji Manica koja je sada zavrsena a ne negde izvan nje, VBA zakljucuje da tu vezu moze da obrise?
Re: Struktura Class-e 28.10.2017. u 14:25 · pre 109 meseci #22
Razmišljaj o klasi kao o apstraktnom tipu podatka (ADT - abstract data types).
Znaš kako se koriste stringovi, celi brojevi, stringovi. Kada kreiraš objekat neke klase to je kao da si rekao a="Neki string". Dokle god postoji varijabla a, postoji i string. Dakle, objekti su VAARIJABLE tipa klasa i objekat postoji dokle god postoji varijabla.

U primeru koji je peca napisao, ako napišeš

Menica("AB1234561").Add ThisWorkbook.ActiveSheet

Funkcija Menica, kreira objekat tipa CMenica i vrati referencu na taj objekat. Ti onda pozoveš metodu Add objekta tipa CMenica koji ti je vratila funkcija Menica i posle te linije objekat NE POSTOJI.

Da si rekao

mm=Menica("AB1234561")
mm.Add

Tada bi u varijabli mm postojala referenca na objekat, i taj objekat ne bi bio uništen dokle god postoji varijabla mm.
Sviđa mi se1
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme