Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: Windows 11 PRO FPP (Full Packaged Product) - Retail, Box, dobozos
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Fűzzük össze a szavakat :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- mefistofeles: Az elhízás nem akaratgyengeség!
- Elektromos rásegítésű kerékpárok
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
Új hozzászólás Aktív témák
-
loszerafin
senior tag
válasz
Protezis
#834
üzenetére
Köszi a linket, bár nem tűnik komoly oldalnak.
Ez kétszer is megtalálható az oldalon :
''a programozók ... fogalmatlan (sic!) emberek''
Van ott egy 35 soros program, ami a Java ''bénaságát'' szemlélteti, hát azt nekem (2 hete tanulom a Java-t) sikerült megírnom kissé rövidebben is.
A program a test változó szövegében levő szavak előfordulási gyakoriságát számolja meg:
import java.util.*;
class MyTest {
public static void main(String[] argv) {
String test = ''Let's count the words in this text. ''
+ ''The text contains some words more than once, ''
+ ''so their count will be more than one.'';
Collection<String> list = Arrays.asList(test.split('' ''));
Collection<String> set = new HashSet<String>(list);
for (String word : set ){
System.out.println(word + '':'' + Collections.frequency(list,word));
}
}
}
Egyébként igaz, hogy a Java az elején igen nehézkes volt, pl. említik a linkelt oldalon, hogy castolni kellett a primitív típus - objektum típus miatt, de ez mára eltűnt (autoboxing/unboxing), és a Collection Framework-öt is eléggé ütősnek érzem, pedig csak a felszínét értem. Azután itt van az assert, ami kitűnő eszköz, meg a kivételkezelés, stb.
Meg ''csúnya'' dolog erősen típusos, fordítós nyelvet összehasonlítani script-nyelvekkel.
A Java és a C# próbál közelíteni a scriptnyelvek hajlékonyságához, szabadságához, de nyilván sose lehetnek olyanok.
Ráadásul azt is írja, a Java könnyen tanulható, hát, nem tudom. Nekem gyötörnöm kell magam, meg magolnom eléggé sokat, és még van 400 oldalam hátra, és akkor csak az alapokon rágtam át magam és még gyakorlatom se lesz.
Személyes véleményem, hogy a programok olvashatósága rettentő fontos. Egy ismerősöm azt mondta a C-ről (eléggé régen volt ez) hogy azt csak írni tudja, olvasni nem...
Én eléggé otthon vagyok a perlben, (ami egy zseniális nyelv), de könnyedén összehozok benne olyan 1 soros programot, amit 3 perc múlva már magam se értek. -
andriscs
aktív tag
válasz
Protezis
#242
üzenetére
Hi!
Ez csak az én szubjektív véleményem, de úgy vélem, hogy egy viszonylag egyszerű problémát nem kell túl sok osztályra felbontani, így jelen esetben is érdemes inkább egy Taylor osztállyal számoltatni. Sok osztály akkor kell, ha valóban összetett a program.
[Szerkesztve] -
BaLinux
tag
válasz
Protezis
#211
üzenetére
Részegség, fél egészség

Teljesen jól gondolkozol, csak láss a szöveg mögé: a Szamla osztálynál nem tiltja meg, hogy csinálj egy int getSzamlaID() metódust, amivel lekérdezheted a kívánt adatot. Sőt, egy int getEgyenleg(), void setEgyenleg(int), de még void addToEgyenleg(int) sincs megtiltva. Hajrá!
-
BaLinux
tag
válasz
Protezis
#191
üzenetére
Jóra gondolsz. Akkor máshogy próbálom meg a dolgot

A Java nem scriptnyelv, nem erre való, tudom csak kíváncsi vagy. Ha valamire ilyen megoldást agyaltál ki, gondolj ki mást, mert nagy valószínűséggel rossz módszer.
Ettől függetlenül van kivétel (pl RPC vagy hasonló dolgok implementálása), és ezért van is megoldás minderre. Nézd meg a Java API doksiban a java.lang.reflect csomag tartalmát, mindent tartalmaz ami a nyelvi reflekcióhoz szükséges lehet. Metódusok, konstruktorok, kivételek, tömbök, mindent tud. Advanced topic!
Hogy lássad, kb. ennyiből állna a dolog:
ha van egy Osztaly nevű class-od, annak float function(int) metódusa, és annak egy o1 instance-ja, akkor a következő rész meghívja a függvényt, és a visszatérő értéket is megkapod.
Method m=Osztaly.getMethod(''function'', new Class[] {int.class});
Object ret=m.invoke(o1, new Object[] {new Integer(1)});
float vissza=((Float)ret).floatValue();
Kész. Persze semmi értelme ennek, mert írhatnád ezt is, ez ugyanaz:
float vissza=o1.function(1);
Csak az előbbinél észre se veszed ha elírtad a függvénynevet, vagy bármilyen hibát vétettél, csak futási időben, míg az utóbbinál már fordításnál. A típusbiztonság nagyon fontos a jó programban, úgyhogy törekedni kell rá.
-
BaLinux
tag
válasz
Protezis
#188
üzenetére
Ha így akarod megcsinálni, akkor levonhatom azt a következtetést hogy új neked az OO szemlélet?

Ja, a javascriptnek annyi köze a java-hoz, hogy kb. semmi.
Tehát, van két osztályod, és uazt a metódusát akarod meghívni. Tipikus eset az interface-es absztrakcióra:
interface KozosTudas
{
public void fuggeny();
}
class Osztaly1 implements KozosTudas
{
public void fuggveny() {
System.out.println(''osztaly1'');
}
}
class Osztaly2 implements KozosTudas
{
public void fuggveny() {
System.out.println(''osztaly2'');
}
}
Ezek után valahol vannak ilyen cuccaink:
Osztaly1 o1;
Osztaly2 o2;
Ezek mindketten implementaljak a KozosTudas-t, tehát:
KozosTudas[] tomb=new KozosTudas[2]; //hulye pelda...
tomb[0]=o1; tomb[1]=o2;
for(int k=0; k<tomb.length; k++) {
tomb[k].fuggveny();
}
SZVSZ keress egy tutorialt ilyen temabol, esetleg ajanlok 1-2 konyvet maganban...
szerk: kénytelen voltam a ciklusváltozót k-nak nevezni mer amúgy italic-ba nyomta a fórum az egészet ami az indexelés után van
[Szerkesztve]
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Samsung Galaxy S23 Ultra - non plus ultra
- Szeged és környéke adok-veszek-beszélgetek
- Gitáros topic
- Kormányok / autós szimulátorok topikja
- Parkside szerszám kibeszélő
- Jolla és SailfishOS tapasztalatcsere
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- OLED TV topic
- One mobilszolgáltatások
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- További aktív témák...
- Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló rugged
- HIBÁTLAN iPhone 15 Pro 128GB Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4692, 92% AKKSI
- MSI Modern 15 Ryzen 7 7730U 16 GB RAM 512 GB SSD FHD IPS
- Samsung Galaxy S21 független 8/128 akku:96%
- Samsung Galaxy Z Fold 6 12/512GB - Újszerű, Független, Ezüst - 1 év garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




