Hódító / Queosia forum
Hódító / Queosia forum
http://queosia.com
http://hodito.hu

Go Back   Hódító / Queosia forum > Hódító / Queosia forum > Általános beszélgetések > PC (hardver, szoftver, játékok stb.)
Register Stats Members List Today's Posts

PC (hardver, szoftver, játékok stb.) Minden, ami számítógép. Kedvenc játékod megbeszélése, segítségkérés hardverügyben stb.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 05-17-2012, 22:23
Cpt Balu Cpt Balu is offline
Junior Member
 
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 73%
Default

Nos, ha jól értem, olyan osztály kell, ami egy példányban szerepel max, és az sem példányosítás útján, erre a legegyszerűbb a statikus osztály szervezése. A singleton példában már látni, hogyan működne, egyszerűen minden metódus és mező statikus kell hogy legyen, így példány létrehozására nincs is szükség, a statikus szerkezet a típuson keresztül érhető el, persze kell egy metódus, ami konstruktorként funkcionál (ha nem a kódban vannak inicializálva az értékek)
a kérdés, hogy ki az a mindenki, aki használná ezt az osztályt, és hogyan?
Reply With Quote
Sponsored Links
  #2  
Old 05-17-2012, 22:37
Redback's Avatar
Redback Redback is offline
Member
 
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
Default

Quote:
Originally Posted by Cpt Balu View Post
Nos, ha jól értem, olyan osztály kell, ami egy példányban szerepel max, és az sem példányosítás útján, erre a legegyszerűbb a statikus osztály szervezése. A singleton példában már látni, hogyan működne, egyszerűen minden metódus és mező statikus kell hogy legyen, így példány létrehozására nincs is szükség, a statikus szerkezet a típuson keresztül érhető el, persze kell egy metódus, ami konstruktorként funkcionál (ha nem a kódban vannak inicializálva az értékek)
a kérdés, hogy ki az a mindenki, aki használná ezt az osztályt, és hogyan?
Épp ez az, hogy példányosítás útján lehessen létrehozni az objektumot. Egy példa:
Quote:
TheClass one = new TheClass();
TheClass two = new TheClass();
Ekkor az lenne számomra a jó, hogy ha one és two ugyan arra az objektumra mutatna. Ezt meg lehet valahogy valósítani? Mondjuk most eszembe jutott valami, mindjárt ki is próbálom.
__________________
Redológia (#455305) [1/A] [SZK]

Non omnis moriar (#701164) [3/G]
Reply With Quote
  #3  
Old 05-17-2012, 22:56
Cpt Balu Cpt Balu is offline
Junior Member
 
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 73%
Default

na arra én is kíváncsi leszek a példányosítás definíciója szerint önálló entitást hoz létre, erre is utal a "new" kulcsszó, régi újat létrehozni nem lehet, elvben úgy lehetne megoldani, hogy egy statikus metódus visszaadja az egyetlen példány azonosítóját:
TheClass One = TheClass.GetTheOne();
TheClass Two = TheClass.GetTheOne();

csak kérdés, hogy mi is az amit ez a függvény visszaad? lehet egy statikus változó, de egyszer létre kell hozni ezt is, mondjuk egy másik statikus függvénnyel:
Reply With Quote
  #4  
Old 05-17-2012, 23:01
Cpt Balu Cpt Balu is offline
Junior Member
 
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 73%
Default

class TheClass
{
static TheClass TheOnlyOne;
public static TheClass GetTheOne()
{
return TheOnlyOne;
}

public static void CreateTheOne();
{
if([még nem létezik])
TheOnlyOne=new TheClass();
else
[már létezik];
}
private TheOne()<--privát konstruktor
{
[példányosítás];
}
}
Reply With Quote
  #5  
Old 05-17-2012, 23:06
Cpt Balu Cpt Balu is offline
Junior Member
 
Join Date: Mar 2011
Posts: 47
Activity: 0%
Longevity: 73%
Default

Ha pedig mindenképp a hagyományos eljárás kell a példányosításra, akkor az egyetlen megoldás, hogy a mezők statikusak, a metódusok pedig nem, ilyenkor sok-sok különböző példány jön létre, de ha a metódusok hívásakor mindig ugyanazt a statikus adatot érik el, a látszat az lesz, hogy ugyanazt az objektumot használod :P
A new kulcsszó mindig új memóriaterületet foglal, tehát új példányt hoz létre, ezen változtatni nem lehet (kb olyan, mintha az összeadás jelet akarnád kivonásra használni, nem fog menni és kész)
Reply With Quote
The Following User Says Thank You to Cpt Balu For This Useful Post:
  #6  
Old 05-17-2012, 23:44
Redback's Avatar
Redback Redback is offline
Member
 
Join Date: Jun 2007
Location: Nyíregyháza
Posts: 2,975
Activity: 0%
Longevity: 92%
Default

Quote:
Originally Posted by Cpt Balu View Post
Ha pedig mindenképp a hagyományos eljárás kell a példányosításra, akkor az egyetlen megoldás, hogy a mezők statikusak, a metódusok pedig nem, ilyenkor sok-sok különböző példány jön létre, de ha a metódusok hívásakor mindig ugyanazt a statikus adatot érik el, a látszat az lesz, hogy ugyanazt az objektumot használod :P
A new kulcsszó mindig új memóriaterületet foglal, tehát új példányt hoz létre, ezen változtatni nem lehet (kb olyan, mintha az összeadás jelet akarnád kivonásra használni, nem fog menni és kész)
Azt hiszem, ez teljesen kielégíti a tudásszomjamat. Köszönöm szépen!
__________________
Redológia (#455305) [1/A] [SZK]

Non omnis moriar (#701164) [3/G]
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 13:13.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Design partly based on Hódító's design by Grafinet Team Kft.

Contents and games copyright (c) 1999-2020 - Queosia, Hódító

Partnerek: Játékok, civ.hu