The Java programmeringsspråk bruker klasser og objekter å tillate programmerere til å jobbe med data . Som C + + , Java også tillater brukere å definere klasser som kan bruke flere datatyper , slik som å utvide fleksibilitet og nytten av sine opprettet stedene. Ved å ta denne oppfatningen av fleksible datatype bruk, kalt " generiske ", og søker en rekursiv element , kan programmerere sikre at brukerne av objekter ansette bare visse typer data, slik at den generiske objektet fungerer etter hensikten samtidig slik at brukerne kan utvide bruken av det objektet. Klasser og typer
Java funksjoner predominately som et objektorientert programmeringsspråk . Dette betyr at programmerere bruker "klasser " for å definere spesifikke " typer" av dataene. Klasser også bruke andre typer data i deres definisjon . I det følgende kode , for eksempel, bruker klasse Box tre heltall som en del av sin definisjon : for at klassen å fungere for andre programmerere , må de følge denne definisjonen ved å levere tre heltall. Dette opprettholder effektiviteten av klassen Box : en
klasse Box {
int lengde; int bredde; int høyde ;
offentlig Box ( int l , int w , int h ) { //Box må bruke integersint lengde = l; int width = w, int height = h ;} }
generiske typer
Noen programmerere , men kanskje ikke slik begrensning. Noen kan utvikle datastrukturer , for eksempel, som krever at brukeren av datastrukturen få lov til å bruke hvilken som helst datatype innenfor strukturen . I dette tilfellet , kan programmereren lage en " generisk " klasse som tar en viss datatype. Så, som i den følgende kode eksempel kan klasse Box nå ta en hvilken som helst type " T" for å representere sidene. Dette kan være svært nyttig hvis brukeren ønsker kanskje å bruke enten heltall eller desimaltall å representere sider :
klasse Box {
T lengde , T bredde; T høyde ;
offentlig Box (T l, T w , T h) { //Box bruker nå typen Tint lengde = l; int width = w, int height = h ;} }
generic Rekursive typer
å komplisere generiske typer , kanskje noen programmerere leke med reglene for hva som er tillatt som en generisk type for en klasse . For eksempel, i stedet for å ha en generell datatype " T, " programmereren kan skape en klasse som tar den samme type som den klassen den virker som den generiske type . Følgende eksempel illustrerer dette : I stedet for type T , bruker klasse generisk type T som representerer en versjon , eller " arver " fra , klasse Box : en
klasse Box > {
Box lengde; Box bredde; Box høyde ;
offentlig Box ( Box l, Box w , Box h) { //Box bruker nå typen Box int lengde = l; int width = w, int height = h ;} }
Nytten av Rekursive typer
< p> I praksis virker dette forvirrende og intuitiv. Men , faktisk den representerer en kunnskapsrike måte for skaperen av klassen til å håndheve viss type bruk. I dette tilfellet bruker brukeren av klassen type " boks" med generisk type " T" som en generisk type for seg selv . Dette betyr i hovedsak at en bruker som skaper et objekt av typen "Box " er tvunget til å bruke samme type ( Box ) som generisk type i stedet for et heltall , desimal , eller noe annet. Dette gjør det mulig for programmerer å sikre at visse skjer når brukerne samhandler med klasser de skaper.