Liidese (
This presentation is the property of its rightful owner.
Sponsored Links
1 / 5

class Tahvel PowerPoint PPT Presentation


  • 73 Views
  • Uploaded on
  • Presentation posted in: General

Liidese ( interface ) mõiste selgituseks. Pakett aken. Paketi aken iga kasutaja. interface Joonistatav void joonistada(...) ; String pealkiri() ;. class A implements Joonistatav void joonistada(...) {............} String pealkiri() {............}. class Joonis

Download Presentation

class Tahvel

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Class tahvel

Liidese (interface) mõiste selgituseks

Pakett aken

Paketi aken iga kasutaja

interface Joonistatav

void joonistada(...);

String pealkiri();

class A implements Joonistatav

void joonistada(...){............}

String pealkiri(){............}

class Joonis

//konstruktor:

Joonis(Joonistatav ku)

...

class Mingi

mingiMeetod(...){

new Joonis(new A())

}

Edastatakse klassi A isend, selle

meetodid joonistada ja pealkiri

class Tahvel

class Raam

Graafikaaken kuvari ekraanil

ku.pealkiri()

ku.joonistada(...)

Tahvel akna raamis


Class tahvel

Liides Joonistatav paketis aken:

package aken;

import java.awt.*; // Graphics

public interface Joonistatav{

public void joonistada(Tahvel t, Graphics g); // mida ja kuidas tahvlile t konteksti g

public String pealkiri(); // akna pealkiri

}

Seda liidest realiseerivaid klasse (paketis praktikum4):

package praktikum4;

import java.awt.*; // Graphics, Color

public class A implements aken.Joonistatav{

public void joonistada(aken.Tahvel t, Graphics g){

g.setColor(Color.blue);

g.fillOval(100, 100, 20, 20);

……….

}

public String pealkiri(){

return “Joonis A";

}

}

package praktikum4;

import java.awt.*; // Graphics, Color

public class B implements aken.Joonistatav{

public void joonistada(aken.Tahvel t, Graphics g){

g.setColor(Color.red);

g.drawRect(120, 140, 50, 30);

……….

}

public String pealkiri(){

return “Joonis B";

}

}

// Joonise A kuvamine (omaette) aknas:

new aken.Joonis(new A());

// Joonise B kuvamine (omaette) aknas:

new aken.Joonis(new B());

(Klassi aken.Joonis konstruktori argumendiks on liidest Joonistatav realiseeriva klassi isend.)


Class tahvel

Mõningaid näiteid meetodis joonistada rakendatavatest käskudest

// jooksva fondi seadmine (muidu: vaikefont), näiteks:

g.setFont(new Font(“Arial”, Font.ITALIC, 18)); // Arial, kursiiv, suurus 18

// sõne väljastamine (alates kohast x = 15, y = 20):

g.drawString(“Autor: Ülli Õpilane”, 15, 20); Fontide näiteid:

// tahvli keskpunkti e. tsentri koordinaadid x ja y:

int x = t.laius() / 2;

int y = t.kõrgus() / 2;

// tahvli väiksem mõõde:

int m = Math.min(t.laius(), t.kõrgus());

// tahvli taustavärvi seadmine (valgest erinevaks), nt kollaseks:

t.setBackground(Color.yellow);

// punase rõnga joonistamine (tsentrissse), välise diameetriga 80, sisemisega 60:

g.setColor(Color.red);

g.fillOval(x-40, y-40, 80,80);

g.setColor(Color.yellow); // tahvli taustavärv

g.fillOval(x-30, y-30, 60,60);


Class tahvel

Nimetu (unnamed, anonymous) klassi mõiste

Kui klass on konstruktorita ja lühikese kirjel-

dusega (vt A) ning selle isendit luuakse ainult

ühes kohas programmis, siis selle klassi

sisu kirjeldus {looksulgudes} on otstarbe-

kohane esitada otse isendiloome avaldises

(tavalise isendliloome avaldise järel).

Nime sellisele klassile ei pandagi!

Isendiloome avaldisse kirjutatakse ülem-

klassi või realiseeritava liidese nimi (B):

“Tavaline”: kirjeldame klassi nimega A,

kirjelduse paigutame faili A.java:

Fail A.java

class A extends/implements B {

// konstruktorita

meetod1(…){

meetod1 sisu

}

meetod2(…){

meetod2 sisu

}

}

new B(…) {

// konstruktorita

meetod1(…){

meetod1 sisu

}

meetod2(…){

meetod2 sisu

}

}

// luuakse nimetu klassi isend

// (rakendades B konstruktorit),

// millel on 2 isendimeetodit

// (avaldise väärtus: viit loodud isendile)

// avaldise väärtuse tüübiks on B

Igal pool saame luua klassi A isendeid:

Isendilloome avaldis, nt klassis C:

new A(…) // rakendatakse klassi B konstruktorit

// loodud on klassi A isend

// millel on 2 isendimeetodit

// (avaldise väärtus: viit loodud isendile)

// avaldise väärtuse tüübiks on A


  • Login