Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Mikä on rajapinta? | Rajapinta
Java OOP
course content

Kurssisisältö

Java OOP

Java OOP

1. Kuinka Työskennellä IDE:n Kanssa?
2. OOP
3. Rajapinta

book
Mikä on rajapinta?

Entä jos meidän täytyy periä useammasta kuin yhdestä luokasta? Java mahdollistaa tämän rajapintojen avulla. Nimestään huolimatta rajapinta muistuttaa hyvin paljon abstraktia luokkaa. Tarkastellaanpa rajapinnan määrittelyä:

Yksinkertaisesti sanottuna rajapintaa käytetään määrittelemään metodit, jotka luokka toteuttaa. Rajapinnoilla on oma syntaksinsa. Kun loimme luokan, käytimme "public class className { }", mutta rajapinnan luomisen syntaksi näyttää erilaiselta:

InterfaceExample.java

InterfaceExample.java

copy
123456
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
  1. Huomioi metodin määrittely;

  2. Emme käytä pääsynmäärittelijöitä;

  3. Emme anna metodirunkoja;

  4. Ei tarvitse merkitä metodeja abstract-avainsanalla, koska työskentelemme rajapinnan sisällä;

  5. Emme luo kenttiä rajapintoihin.

Tarkastellaan Interface-rajapinnan käyttöä esimerkin avulla, jossa on mediasoitin. Meillä on Interface nimeltä MediaPlayer, jossa on metodit play, pause ja stop. Lisäksi on kaksi luokkaa, jotka toteuttavat tämän mediasoittimen rajapinnan: AudioPlayer ja VideoPlayer.

MediaPlayer.java

MediaPlayer.java

AudioPlayer.java

AudioPlayer.java

VideoPlayer.java

VideoPlayer.java

copy
12345
public interface MediaPlayer { void play(); void pause(); void stop(); }

Kuten huomaat, loimme interface-rajapinnan ja kaksi luokkaa, jotka toteuttavat tämän rajapinnan. Syntaksi on sama kuin abstraktien metodien ylikirjoittamisessa. Olemme ylikirjoittaneet jokaisen metodin jokaiselle luokalle niin, että ne suorittavat oman erityisen toimintonsa.

Yksi rajapintojen ominaisuuksista on, että voimme toteuttaa useamman kuin yhden rajapinnan. Tarkastellaanpa esimerkkiä:

Vehicle.java

Vehicle.java

VehicleInfo.java

VehicleInfo.java

Car.java

Car.java

copy
123456
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }

Olemme luoneet rajapinnat Vehicle ja VehicleInfo. Lisäksi olemme luoneet luokan Car, joka toteuttaa molemmat nämä rajapinnat. Näin voimme valita mitkä toiminnot toteutetaan luokassa, mikä tukee hyvin olio-ohjelmoinnin periaatetta nimeltä abstraktio. Rajapintojen kanssa työskentely on erittäin kätevää, ja niitä käytetään laajasti. Seuraavassa luvussa tarkastelemme myös rajapinnan ja abstraktin luokan pääasiallisia eroja sekä opimme, kumpaa kannattaa käyttää käytännössä!

1. Mikä on rajapinta (interface) Javassa?

2. Voiko luokka toteuttaa useita rajapintoja Javassa?

3. Mikä on rajapinnan tarkoitus Javassa?

4. Mitä avainsanaa käytetään rajapinnan toteuttamiseen luokassa?

5. Mitä tapahtuu, jos luokka väittää toteuttavansa rajapinnan, mutta ei tarjoa toteutuksia kaikille sen metodeille?

question mark

Mikä on rajapinta (interface) Javassa?

Select the correct answer

question mark

Voiko luokka toteuttaa useita rajapintoja Javassa?

Select the correct answer

question mark

Mikä on rajapinnan tarkoitus Javassa?

Select the correct answer

question mark

Mitä avainsanaa käytetään rajapinnan toteuttamiseen luokassa?

Select the correct answer

question mark

Mitä tapahtuu, jos luokka väittää toteuttavansa rajapinnan, mutta ei tarjoa toteutuksia kaikille sen metodeille?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

course content

Kurssisisältö

Java OOP

Java OOP

1. Kuinka Työskennellä IDE:n Kanssa?
2. OOP
3. Rajapinta

book
Mikä on rajapinta?

Entä jos meidän täytyy periä useammasta kuin yhdestä luokasta? Java mahdollistaa tämän rajapintojen avulla. Nimestään huolimatta rajapinta muistuttaa hyvin paljon abstraktia luokkaa. Tarkastellaanpa rajapinnan määrittelyä:

Yksinkertaisesti sanottuna rajapintaa käytetään määrittelemään metodit, jotka luokka toteuttaa. Rajapinnoilla on oma syntaksinsa. Kun loimme luokan, käytimme "public class className { }", mutta rajapinnan luomisen syntaksi näyttää erilaiselta:

InterfaceExample.java

InterfaceExample.java

copy
123456
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
  1. Huomioi metodin määrittely;

  2. Emme käytä pääsynmäärittelijöitä;

  3. Emme anna metodirunkoja;

  4. Ei tarvitse merkitä metodeja abstract-avainsanalla, koska työskentelemme rajapinnan sisällä;

  5. Emme luo kenttiä rajapintoihin.

Tarkastellaan Interface-rajapinnan käyttöä esimerkin avulla, jossa on mediasoitin. Meillä on Interface nimeltä MediaPlayer, jossa on metodit play, pause ja stop. Lisäksi on kaksi luokkaa, jotka toteuttavat tämän mediasoittimen rajapinnan: AudioPlayer ja VideoPlayer.

MediaPlayer.java

MediaPlayer.java

AudioPlayer.java

AudioPlayer.java

VideoPlayer.java

VideoPlayer.java

copy
12345
public interface MediaPlayer { void play(); void pause(); void stop(); }

Kuten huomaat, loimme interface-rajapinnan ja kaksi luokkaa, jotka toteuttavat tämän rajapinnan. Syntaksi on sama kuin abstraktien metodien ylikirjoittamisessa. Olemme ylikirjoittaneet jokaisen metodin jokaiselle luokalle niin, että ne suorittavat oman erityisen toimintonsa.

Yksi rajapintojen ominaisuuksista on, että voimme toteuttaa useamman kuin yhden rajapinnan. Tarkastellaanpa esimerkkiä:

Vehicle.java

Vehicle.java

VehicleInfo.java

VehicleInfo.java

Car.java

Car.java

copy
123456
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }

Olemme luoneet rajapinnat Vehicle ja VehicleInfo. Lisäksi olemme luoneet luokan Car, joka toteuttaa molemmat nämä rajapinnat. Näin voimme valita mitkä toiminnot toteutetaan luokassa, mikä tukee hyvin olio-ohjelmoinnin periaatetta nimeltä abstraktio. Rajapintojen kanssa työskentely on erittäin kätevää, ja niitä käytetään laajasti. Seuraavassa luvussa tarkastelemme myös rajapinnan ja abstraktin luokan pääasiallisia eroja sekä opimme, kumpaa kannattaa käyttää käytännössä!

1. Mikä on rajapinta (interface) Javassa?

2. Voiko luokka toteuttaa useita rajapintoja Javassa?

3. Mikä on rajapinnan tarkoitus Javassa?

4. Mitä avainsanaa käytetään rajapinnan toteuttamiseen luokassa?

5. Mitä tapahtuu, jos luokka väittää toteuttavansa rajapinnan, mutta ei tarjoa toteutuksia kaikille sen metodeille?

question mark

Mikä on rajapinta (interface) Javassa?

Select the correct answer

question mark

Voiko luokka toteuttaa useita rajapintoja Javassa?

Select the correct answer

question mark

Mikä on rajapinnan tarkoitus Javassa?

Select the correct answer

question mark

Mitä avainsanaa käytetään rajapinnan toteuttamiseen luokassa?

Select the correct answer

question mark

Mitä tapahtuu, jos luokka väittää toteuttavansa rajapinnan, mutta ei tarjoa toteutuksia kaikille sen metodeille?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 1
some-alt