
Sammenligningstabel
Grundlag for sammenligning | klasse | grænseflade |
---|---|---|
Grundlæggende | En klasse er instantiated til at oprette objekter. | En grænseflade kan aldrig blive instantiated, da metoderne ikke er i stand til at udføre handlinger ved påkaldelse. |
Søgeord | klasse | grænseflade |
Adgang specifier | Medlemmerne af en klasse kan være private, offentlige eller beskyttede. | Medlemmerne af en grænseflade er altid offentlige. |
Metoder | Metoderne i en klasse er defineret til at udføre en specifik handling. | Metoderne i en grænseflade er rent abstrakte. |
Redskab / Forlæng | En klasse kan implementere et hvilket som helst antal grænseflader og kan kun udvide en klasse. | En grænseflade kan udvide flere grænseflader, men kan ikke implementere nogen grænseflade. |
Constructor | En klasse kan have konstruktorer til at initialisere variablerne. | En grænseflade kan aldrig have en konstruktør, da der næppe er nogen variabel til at initialisere. |
Definition af klasse
En klasse er et vigtigt aspekt af Java-programmering uden klasser, du kan ikke implementere et java-program. En klasse opretter referencetyper, og disse referencetyper bruges til at oprette objekter. En klasse har en underskrift og en krop. Undertegnelse af en klasse har klassens navn og information, der fortæller om klassen har arvet en anden klasse. Legemet i en klasse har felter og metoder, der opererer på disse felter. En klasse oprettes ved hjælp af en søgeordsklasse. Lad os se, hvordan man erklærer en klasse.
klasse klassenavn {/ * felter ... metoder * /}
Når en klasse er instantiated, indeholder hvert objekt en kopi af felter og metoder med dem. De felter og medlemmer, der er erklæret inde i en klasse, kan være statiske eller ikke-statiske. Statiske medlemmer værdi er konstant for hvert objekt, mens de ikke-statiske medlemmer initialiseres af hvert objekt forskelligt i overensstemmelse med dets krav.
Medlemmer af en klasse har adgangspersoner, der bestemmer medlemmernes synlighed og tilgængelighed for brugeren eller underklasserne. Adgangspecifikatorerne er offentlige, private og beskyttede. En klasse kan arves af en anden klasse ved hjælp af adgangspersonalet, som bestemmer synligheden af medlemmer af en superklasse (arvet klasse) i en underklasse (arvelig klasse). Klassen opfylder således begrebet data skjuling og indkapsling i objektorienteret programmering.
Definition af grænseflade
En grænseflade er også blandt de referencetyper, der er defineret i Java. Betydningen af en grænseflade er, at en klasse i Java kun kan arve en enkelt klasse. For at undgå denne begrænsning introducerede Java-designerne et koncept af grænseflade. En grænseflade er syntaktisk ligner en klasse, men den mangler i feltdeklaration, og metoderne i en grænseflade har ingen implementering. En grænseflade er erklæret ved hjælp af en søgeord interface . Lad os se erklæringen om en grænseflade.
interface interface_name {type var_name = værdi; type metode1 (parameter-liste); type metode2 (parameterliste); . . }
En grænseflade definerer ikke nogen metode, der er angivet i den, fordi den mangler felter til at fungere på. Bare fordi enhver metode inden for en grænseflade ikke udfører nogen handling, kan en grænseflade aldrig blive instantiated. Hvis en grænseflade har et feltelement, skal det initialiseres på tidspunktet for deres erklæring. En grænseflade indeholder aldrig nogen konstruktører, da det mangler i feltmedlemmer til at blive initialiseret. Så, en grænseflade definerer kun, hvad en klasse skal gøre i stedet for, hvordan den skal gøre.
En grænseflade, der en gang er oprettet, kan implementeres af et hvilket som helst antal klasser ved hjælp af et søgeordsredskaber. Men klasserne, der implementerer en grænseflade, skal definere alle metoderne inden for en grænseflade. En grænseflade kan også arve en anden grænseflade ved hjælp af udvidet søgeord. Hvis en klasse implementerer en grænseflade, der udvider en anden grænseflade. Så skal en klasse definere metoderne for både de grænseflader, der vises i en kæde. Metoderne inden for en grænseflade skal altid være offentlige, da de skal få adgang til de klasser, der implementerer dem.
Nøgleforskelle mellem klasse og interface i Java
- En klasse kan oprettes ved at skabe sine objekter. En grænseflade er aldrig instantiated, da de metoder, der er angivet i en grænseflade, er abstrakte og ikke udfører nogen handling, så der er ingen brug for at instansere nogen grænseflade.
- En klasse erklæres ved hjælp af en søgeordsklasse. På samme måde oprettes en grænseflade ved hjælp af en søgeordgrænseflade.
- Medlemmerne af en klasse kan få adgangen specifier som offentlig, privat, beskyttet. Men medlemmerne af en grænseflade er altid offentlige, da de skal få adgang til de klasser, der implementerer dem.
- Metoderne i en klasse er defineret til at udføre en handling på de felter, der er angivet i klassen. Som grænseflade mangler i erklæringen af felter, er metoderne inden for en grænse rent abstrakt.
- En klasse kan implementere et hvilket som helst antal grænseflader, men kan kun udvide en superklasse. En grænseflade kan udvide ethvert antal grænseflader, men kan ikke implementere nogen grænseflade.
- En klasse har konstruktorer defineret inde i den for at få variablen initialiseret. Men en grænseflade har ingen konstruktorer, da der ikke er nogen felter, der skal initialiseres. Feltene i en grænseflade initialiseres kun på tidspunktet for deres erklæring.
Konklusion:
Både klasser og grænseflader har deres egen betydning. En klasse bruges, når vi skal definere, hvordan opgaven skal udføres. En grænseflade bruges, når vi skal vide, hvilken opgave der skal udføres.