|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
[JAVA]Classi statiche
Ragazzi fino ad adesso ho scritto tutto il mio codice senza mai utilizzarle, forse probabilmente perchè non ho nemmeno capito il loro scopo e la loro utilità
Qualcuno mi potrebbe chiarire le idee sulla loro funziona e in che genere di problemi vengono utilizzate, perchè magari ho avuto a che fare con problemi che sarebbero stati facile da risolvere utilizzando le classi astratte ma che però ho risolto in modo infelice per vie traverse. Nel libro che ho non vengono spiegate molto bene. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
classi statiche o classi astratte???
per le classi astratte, tratto da wikipedia Codice:
In informatica si definisce classe astratta una classe che viene progettata soltanto per svolgere la funzione di classe base (chiamata a volte anche classe genitrice) e da cui le classi derivate (chiamate anche classi figlie) possono ereditare, ma che, da sola, non può essere istanziata. le classi astratte sono usate anche per rappresentare concetti ed entità astratte. Le caratteristiche "incomplete" della classe astratta vengono condivise da un gruppo di sotto-classi figlie, che vi aggiungono caratteristiche diverse, in modo da colmare le "lacune" della classe base astratta. Le classi astratte possono essere considerate come super-classi che contengono metodi astratti, progettate in modo che le sotto-classi che ereditano da esse ne "estenderanno" le funzionalità implementandone i metodi. Il comportamento definito da queste classi è "generico" e la maggior parte dei costrutti della classe sono indefiniti e non implementati. Prima che una classe derivata da una classe astratta possa essere istanziata essa ne deve implementare tutti i metodi astratti. Riassumendo: quando definisce una classe astratta il programmatore deve tener presente che si tratta di una classe composta da elementi che devono essere implementati successivamente mediante l'ereditarietà. Questo processo di astrazione ha lo scopo di creare una struttura base che semplifica il processo di sviluppo del software. Al contrario, invece, una classe concreta è una classe su cui possono essere create ("istanziate") entità chiamate "oggetti". La maggior parte dei linguaggi di programmazione orientati agli oggetti consente al programmatore di specificare, con apposite parole chiave, quali classi sono astratte, impedendo in modo automatico che su di esse vengano istanziati oggetti (ad esempio Java usa la keyword abstract). Con questi accorgimenti il programmatore può concentrarsi sull'analisi e lo sviluppo del programma: l'implementazione effettiva delle funzionalità necessarie viene fatta nelle classi derivate che ereditano da quella astratta.
__________________
My gaming placement |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Scusami intendevo le classi statiche, delle astratte penso di averne fatto buon uso
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2000
Messaggi: 1459
|
Member. Member classes are defined within the body of a class. You can use member classes anywhere within the body of the containing class. You declare member classes when you want to use variables and methods of the containing class without explicit delegation.
The member class is the only class that you can declare static. When you declare a member class, you can instantiate that member class only within the context of an object of the outer class in which this member class is declared. If you want to remove this restriction, you declare the member class a static class. When you declare a member class with a static modifier, it becomes a nested top-level class and can be used as a normal top-level class as explained above. praticamente, quando dichiari una classe membro non statica, per ottenere un'istanza dovresti fare: Codice:
TopLevelClass tlc=new TopLevelClass(); TopLevelClass.NestedClass nc=tlc.new NestedClass(); Codice:
TopLevelClass.NestedClass nc=new TopLevelClass.NestedClass(); http://www.javaworld.com/javaworld/j...a-static2.html ciauz |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
__________________
My gaming placement Ultima modifica di franksisca : 17-07-2006 alle 17:32. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:12.