- iOS alkalmazások
- Erős specifikáció, kompakt formában
- Yettel topik
- Android alkalmazások - szoftver kibeszélő topik
- Mobilhasználat külföldön
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- iPhone topik
- Honor 400 Pro - gép a képben
- Google Pixel topik
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
Aktív témák
-
Minél nagyobb programot írsz, annál inkább előnyhöz jut az OOP. Egy osztályt annyiszor veszel elő, amennyiszer akarsz, és elég mindössze a nevét tudnod.
Kevés nyelv van manapság, ami nem támogat OOP-t. Kevesebb, mint a másik oldalon.
Ha a plattform-függetlenségről beszélünk, akkor meg ott a JAVA, amire a többi nyelv nem igazán képes.Kicsit régi dologra feleltem, de csak azért tettem, mert anno én is pont ilyen szemellenzős voltam. Pár soros programot ma sem raknék osztályokba, de már megváltozott a véleményem.
-
doc
nagyúr
te beszélsz feltűnési viszketegségről meg "agyfosásról" ?
amúgy a felhozott példád remek, pontosan ez az a terület, ahol az OO sokkal kényelmesebben használható.
[i]
plus (a,b) : int;
a,b int;
plus:=a+b;plus (a,b) : real;
a,b : real
plus:=a+b;
[/i]itt most ugyanazt leírtad kétszer, azzal a különbséggel hogy az int-et kicserélted real-re... pont ezt (és még sok más "robotmunkát") segít elkerülni az OO szemlélet
pl. tegyük fel hogy az int és real nem alaptípusok, hanem annál bonyolultabb szerkezetek. ilyenkor ha szeretnél mondjuk még egy típust, nem kell szorgos hangya módjára copy-paste-elni, majd az int-eket más típusra cserélni, hanem egész egyszerűen származtatod az új, kibővített osztályt a régiből, és automatikusan jól működik minden. akkor kell a szóban forgó függvényt újra megírni, ha mást csinál, ha ugyanazt, akkor nem kell ötmilliószor lemásolni, erre való a virtuális metódus
egyébként már példát is hoztam a polimorfizmusra, tessék kicsit scrollozni, olyan sokat nem postoltam még ebbe a topicba...
-
dabadab
titán
[ Elkavartam valahova a sajtreszelot
]
"Mit szolsz ehez
Tesszeb Button egy objektum
aszondom hogy :
new Button(x,y); \ahol x,y a pozicio. Mi a szentseget is csinaltam?????
Meghivtam az objektum construktorat. Nem? Vagyis?"Eloszor is azt, hogy soha nem keso megtanulni irni.
Masodszor meg azt, hogy a konstruktort hivtad meg, nem az objektumot. Objektumot nem lehet meghivni, csak az egyes metodusait (igen, a konstruktor az egy specialis metodus).
-
shev7
veterán
a helyzet az, hogy eddig senki sem mondta, hogy az OOP az isten minden mas szar, es mindehol az oopt kell hasznalni. Szemben veled aki lathatoan tudas nelkul mondasz velemenyt valami olyanrol amirol fogalmad sincs. Felhozod a megdonthetetlennek hitt erveidet, de mivel nincs mogotte tudas, igy gyakorlatilag nincs ertelme annak amit mondasz...
-
doc
nagyúr
komolyan nem erzed, hogy milyen nevetseges vagy? osszefoglalom az altalad eddig elmondottakat:
"nem ertek az OOP-hoz, nem ismerem, de akkor is szar, semmi ujat nem hoz, tulbonyolit mindent, eroforrast pazarol, parasztvakitas az egesz, mondhattok barmit akkor is igy van es kesz"
az meg mar elhangzott, hogy a PLC nagyon mas vilag, mint a PC, nyilvan nem is "celpontja" az OOP -nak
irj programokat PC-re, mondjuk osszetettebbeket, ahol egyszerre sok dolgot kell csinalnod/kezelned. en is "sima" C-vel kezdtem, elveztem a strukturaltsagot/prodecuralitast a BASIC meg tarsai utan, de idovel nagyon nehez volt kezdben tartani egy-egy nagyobb kódot, mikor minden kis változáshoz egy rakás helyen kellett beletúrnom a kódba, aztán nyomozni hogy mi maradt ki, amitől még mindig nem jó...
az OOP nagyon kényelmes megoldást kínál ezekre a helyzetekre, remekül módosítható, átlátható, és ha valami kész van, akkor azt szépen elrakod, mint egy konzervdobozt, és nem kell beletúrni, csak elolvasni a dobozt, hogy hogyan kell használni és kész
elvileg persze ugyanezt meg lehet csinálni a hagyományos módszerekkel is, de az én tapasztalatom azt mutatja, hogy a sokkal nyögvenyelősebb.
aztán vannak olyan területek/nyelvek ahol az ember eleve nem tud mást csinálni, mint használni az OOP-t, pl. Java, ActionScript3, stb
megszokás után az ember soha nem szokik le róla
arról nem beszélve hogy milyen szép egy OO program. tudom, ez baromi szubjektív, de nekem akkor is sokkal jobban bejön egy Enemy.selfKill() mint egy Kill(Enemy)
vagy hogy hatmillió különféle objektumod mindegyikének mondhatod hogy "show" meg "hide" vagy "moveTo", nem kell külön függvényeket csinálni az összes típusra, mondjuk ShowBullet(), ShowShip(), ShowEnemy(), stb... persze itt is kihasználhatod hogy többféle típusú paraméterrel megírod ugyanazt a függvényt, de akkor is sokkal több meló, meg hogy elővegyük a vesszőparipádat: sokkal több felesleges erőforrás (ram, stb) elpazarlása -
fordfairlane
veterán
Gratula!
! Deh igenis jar, sokan hasznaljak, legtobszor ertelmetlenul. Ha meg feltetlenul peldat is akarsz szolj me' kuldom (csak azrt nem most mert meg meg kell hogy keresem oket)
Ne haragudj, de ilyen megjegyzések után szerintem jobb lenne, ha pihentetnéd a dolgot. Ha ennyire nem vagy tisztában azzal, hogy mi az az objektum, és mire használják, akkor nincs értelme vitatkozni, mert igazából azt sem tudod, miről vitatkozol.
-
bambano
titán
A linux bemappeli a diszkeken levő libeket, ami majdnem ugyanaz, mintha beolvasná. Viszont kitolni nem tolja ki, mert eredetileg is diszkről szedte be, minek tolná ki vissza a libet, ami nem módosuló kódszegmens?
A windowsról nyilvánvalóan levezethető következtetésemet most hagyjuk
-
dabadab
titán
Eleg nehez am ugy vitazni veled, hogy lathatoan nagyon nem vagy kepben a vita targyat illetoen.
Pl. a kod ujrafelhasznalasa alatt a forraskodrol van szo: hogy ne kelljen ugyanazt a kodot tobbszor leirni, hanem eleg legyen egyszer belerakni a base classba (haho, memoriamegtakaritas!). Valamint olyat sem mondtam, hogy nem teszi atlathatobbat a kodot (mar hat azza teszi a ketszintu strukturalassal (osztaly/metodus)), csak nem ez a fo szerepe.
Az olyan ex cathedra kijelentesekkel, hogy "Az adtok ma' reg gatyaba vannak razva, OOP-nak semmi koze sincs hozza!", meg nem nagyon tudok mit kezdeni, azonkivul, hogy szinten ex cathedra kijelentem, hogy "de nem"Az automatizalasra meg alljon itt egy pelda:
C++:
void A::B(int p)
{
X o;
o.f(p);
}ugyanez C-ben:
void B(int p)
{
Xp ptr;
int res;
X_init(ptr);
X_f(ptr,p);
X_del(ptr);
}Latod, hogy mar egy ilyen rovid kodnal is mennyi gepelest meg lehet takaritani? Es itt nem csak arrol van szo, hogy ne kopjon el az ember ujja, hanem arrol, hogy joval kevesebb lehetoseg van a hibazasra.
"Pelda: Van egy motorod, amit vezerelni akarsz egy convertizoron keresztul. Irsz ra egy altalnositott procedurat, ami megenged tobb fele vezerlest is. De most teszemazt csak jobra/balra akarod forgatni, semmi egyebb kulonos parametrizalas nem akar vegrehajtani. Nah most a fugvenyedhez rendelt adatbazis merete sokkal nagyobb, mert az nem csak egy egyszeru funkciohozz lett megirva"
???
Ha egyszer csak jobbra meg balra akarod forgatni, akkor irjal olyan kodot, ami jobbra meg balra forgatja. Meg egyaltalan, mi koze az OOP-nek ahhoz, hogy egy adott eljarast milyen bonyolultan irsz meg?..."nem fogott meg az OOP, es a vele jaro vizualis maszlag elonye"
???
Az OOP-vel nem jar egyutt semmilyen vizualis maszlag, gyakorlatilag az osszes C++ kodot a ket dolgos kezemmel potyogtem a szovegszerkesztobe, sot, a legtobb programnak egyaltalan nem is volt GUI-ja. -
#95904256
törölt tag
Lassan 10 éve használom a Step7-et, illetve programozok PLC-ket. A PLC-s programokat nem venném egy kalap alá a PC-s programokkal. Merőben mások a feladatok és az eszközök, az egy dolog hogy mindegyiken fut egy program...
A PLC-ken nem is erőltetném az OOP-t, hacsak az adott objektumokat nem tudja az ember rendszeresen felhasználni. ( Pl. több tíz vagy száz hasonló vezérlést kellene elkészíteni ). De legtöbbször ezek olyan egyszerű ( pár soros ) dolgok hogy inkább a megfelelő helyen beírja az ember vagy komplett gyári objektumot használ.
Viszont a gyári objektumokat ( pl. soros kommunikáció, motorvezérlés, stb. ) sokkal egyszerűbb használni mint írni egy saját rutint, amihez elég alaposan meg kellene ismerni az aktuális hardvert is...
-
#95904256
törölt tag
Tehat valami olyam megoldasra gondoltam hogy neh oroklodjenek folosleges procedurak, ezket en programozaskor ki-be tudjam kapcsolgatni, neh toltsek vele foloslegesen memoriat, elore latva azt hogy ezekre futaskor biztosan nem lesz szukseg!
Szerintem felesleges lenne ezzel töltened az időt. Az OS úgyis elvégzi helyetted ezt a feladatot. A nem futó programrészeket vagy be sem tölti vagy előbb-utóbb kipakolja a RAM-ból a merevlemezre ha kell a hely.
-
dabadab
titán
"nem hogy csak nem tetszik az OOP, deh nincs is benne komoly (!!!gyakorlatilag nincs benne) tapasztalatom"
Magyarul te is tudod, hogy fogalmad sincs, hogy mirol beszelsz.
Az OOP elsosorban nem a kod rendezeserol szol: azt mar elotte rendberaktak nagyjabol. Ennel sokkal fontosabb volt a kod altal hasznalt adatok gatyaba razasa, a kod ujrafelhasznalas tamogatasa valamint az, hogy minel tobb dolgot automatizaljanak.
"Tehat valami olyam megoldasra gondoltam hogy neh oroklodjenek folosleges procedurak, ezket en programozaskor ki-be tudjam kapcsolgatni, neh toltsek vele foloslegesen memoriat, elore latva azt hogy ezekre futaskor biztosan nem lesz szukseg!"
Ez nem igy mukodik: a kod mindenkeppen csak egyszer van a memoriaban, akarhany osztaly (es annak akarhany peldanya) is hasznalja, az egyes objektumok konkret memoriahasznalatat leginkabb az adat tagok merete hatarozza meg.
-
shev7
veterán
em a program bonyolultsaga a lenyeges, hanem a merete. Van egy szint ami felett megfelelo tervezes nelkul kezelhetetlenne valik a kod, akkor is ha alapvetoen rem egyszeru dolgokat csinal. Ezen segithet ha OOP-t hasznalsz. Persze ha rosszul hasznalod akkor termeszetesen teher.
Volt egy DB kerdes. Errol erdekes lenne beszelni, en peldaul annyira nem vagyok kibekulve a j2ee-s, hibernate-es megkozelitessel, amikor az adatbazistablak es az objektumok kozott 1-1 megfeleltetes van. jobb szeretem amikor az adatbazis fuggetlenebb a kodtol. De tudom ez is az adott szituaciotol fugg, van ahol celszeru ezt a megkozelitest hasznalni.
-
dabadab
titán
Tulajdonkeppen milyen POP nyelvet hasznalsz?... Es hogy tervezed meg az adatstrukturakat, ha nem igazan erted, hogy mit kellene csinalni?...
Ill. szerintem bonuszkent, mielott vki nagyon elkezdene osztani az eszt, vmennyire elmondhatna, hogy mekkora/milyen tapasztalata van, mert egy kicsit ugy erzem, hogy inkabb elmeletben ismered a kerdest
-
shev7
veterán
ha most ugysem akarsz vele foglalkozni, es nem akarod megirni, akkor ezeket a dolgokat miert akarod most kitalalni?
MOD: nem kell minden osztalynak szulo osztalyt adni (nyugodtan szaramzhat az altalanos os osztalybol, interfeszt meg foleg nem kell neki megadni, ha nincs ra szukseg)
-
shev7
veterán
de nem ertelek tovabbra sem. Van egy olyan pont a programodban ahol majd valamikor meg fogsz hivni egy midi lejatszot. De most meg nem, mert most nincs olyanod. Nem midegy, hogy a fuggveny nincs kesz amit meg kell hivnod, vagy az objektumot nem keszited el aminek a fuggvenyet majd meghivod? mitol bonyolultabb az egyik eset a masiknal?
-
shev7
veterán
biztos igazad van, csak nem igazan ertem, hogy mirol beszelsz. Mi az akadalya annak, hogy oop-ben a pillanatnyilag irrelevans dolgokat kihagyva programozz...
#18: mi az, hogy eleg ososztalyba kell beszurni? ez alapveto barmilyen programozasi szemleletnel, hogy amennyire csak lehet keruljuk a kodduplikalast, nem szurjuk be ugyanazt a kodot tobb helyre.
Aktív témák
Hirdetés
- AMD Ryzen 7 5700X processzor eladó /Garanciás/
- Xbox Series S + 2 kontroller
- Dell laptop eladó i5 11. gen, 8GB RAM, 512GB SSD, újszerű állapotban!
- Bomba ár! HP EliteBook Folio 1040 G1 - i5-G4 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Bomba ár! HP Elitebook Folio 9470M - i5-3GEN I 8GB I 256GB SSD I 14" I DP I Cam I W10 I Garancia!
- AKCIÓ! Gigabyte AORUS 16X (2024) Gamer notebook - i7 14650HX 16GB RAM 1TB SSD RTX 4070 8GBWin11
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- AKCIÓ! ASUS STRIX B650E-E R7 7700 64GB DDR5 1TB SSD RTX 3080 10GB Thermaltake Ceres 500 850W
- ASUS TUF Gaming F16
- Tablet felvásárlás! Samsung Galaxy Tab S10+, Samsung Galaxy Tab S10 Ultra, Samsung Galaxy Tab S10 FE
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest