» »

Vmesnik v Javi

Vmesnik v Javi

Camel ::

Pozdrav,

Imam razred:
---------------------------------------------------------------------
public class Pravokotnik
{
private int sir;
private int dol;

public int getS() { return sir; }
public void setS(int sir)
{
this.sir = sir;
}
public void setD(int dol)
{
this.dol = dol;
}
public int getD() { return dol;}

public String toString()
{
return "Dolzina: "+dol+"Sirina: "+sir;
}
}
------------------------------------------------------------------------------------------
sedaj pa me zanima kako bi naredil vmesnik za ta razred, ki bi imel metodo izrisi().
Ta metoda mora narisati lik z zvezdicami.

kako bi to naredu?

Lp
Dolce far niente

drejc ::

Zguglej o naslednjem
-Swing
-Awt
-Applet

Recmo na Sunovi strani mal poguglej za tutoriale o swingu.

Še najkrajš, IMO, bi pa bilo napisat applet in implementirat metodo paint().
"Rise above oneself and grasp the world"
- Archimedes of Syracuse

Gwanaroth ::

Swing ter Awt sta za grafiko..

Po tej povedi
Ta metoda mora narisati lik z zvezdicami.

mislim, da bi on rad, da mu izrise nekako tako (v command promptu):

*******************
*_________________*
*_________________*
*******************
[brez crtic]

Seveda glede na vrednosti spremenljivk, ki jih vnese.

Camel: pogruntat moras samo algoritem, koliko zvezdic ter koliko presledkov mora izrisat, glede na tvoji spremenljivki sir ter dol.
Nato samo v for zanki rises temu primerno.
Lights often keep secret hypnosis..

Zgodovina sprememb…

SkIDiver ::

Postavš not dva konstruktorja v ta razred? Ob klicu prvega brez argumentov maš vse nastavljeno na 0 ob klicu drugega z dvema argumentoma pa ti nastavi širino in dolžino. Po moje.

Da ti bo zrisal zadevo pa moraš ugotovit algoritm kolk zvezdic v kateri vrstici in vključujoč presledke.

Zgodovina sprememb…

  • spremenil: SkIDiver ()

Gwanaroth ::

Se mi ni dalo upoštevat presledkov, sem dal da riše kar tako:

***
***
***
***
***

to je to:

public static void izrisi(int a, int b) {

int i;
int j;

for(j=1; j < = b;j++) {
for(i=1;i < = a;i++) {
System.out.print("*");
}
System.out.println();
}
}

Kličeš pa recimo izrisi(8,10) ...
Lights often keep secret hypnosis..

Camel ::

hvala za vse odgovore, sam mene zanima predvsem kako bi naredil vmesnik(interface) z metodo izrisi()?
Dolce far niente

alum ::

ustvari vmesnik z prazno metodo izrisi()!

nato pa implementiraj vmesnik razredu Pravokotnik in napisi implementacijo metode izrisi...

Zgodovina sprememb…

  • spremenilo: alum ()

Camel ::

zanima me prav to kako implementirati vmesnik razredu (v tem primeru Pravokotnik)
Dolce far niente

Camel ::

Da povem celotno nalogo:

Napisat moram vmesnik (interface) Lik, ki ima metodo izrisi.
Potem pa moram implementirati dva razreda Kvadrat(lastnost: dolzina) in Pravokotnik (lastnosti: dolzina in visina) Vsaka mora meti svojo metodo izris, ki izrise lik z zvezdicami.
Na koncu moram se napisati testni programcek, ki v polje likov postavi 4 razlicne like, ki jih v zanki izrise.

Razred Pravokotnik
----------------------------------------
public class Pravokotnik implements Lik
{
private int sir;
private int dol;

public int getS() { return sir; }
public void setS(int sir)
{
this.sir = sir;
}
public void setD(int dol)
{
this.dol = dol;
}
public int getD() { return dol;}

public void izrisi(int n, int m)
{
for(int i=0;i (manj) n;i++)
{
for(int j=0;j (manj) m;j++)
{
System.out.print("*");
}
System.out.print("\n");
}
}

public String toString()
{
return "Dolzina: "+dol+"Sirina: "+sir;
}
}

Razred Kvadrat
------------------------------------------------
class Kvadrat implements Lik
{
public int stranica;

public void setStranica(int stranica)
{
this.stranica= stranica;
}
public int getStranica() { return stranica; }

public void izrisi(int n)
{
for(int i=0;i (manj) n;i++)
{
for(int j=0;j (manj) n;j++)
{
System.out.print("*");
}
System.out.print("\n");
}
}

}

Vmesnik in glavni program = ?
-----------------------------------------------
??????????????????????????????????

hvala
Dolce far niente

[MYTiX] ::

Ne poznam Jave, ampak v C# (ki je zelo podoben Javi) zgelda reč tako:

interface Lik
{

   void izrisi( );
}
podpis

SkIDiver ::

Nism še tko deleč z javo. Dans al pa jutr bom pa ti povem kako bi rešu tvojo zadevo:D

kopernik ::

public interface Lik
{
  public void izrisi();
}

public class Glavni
{
  public Lik narediPravokotnik(int d, int s)
  {
    Pravokotnik p = new Pravokotnik();
    p.setD(d);
    p.setS(s);
    return p;
  }

  public Lik narediKvadrat(int a)
  {
    Kvadrat k = new Kvadrat();
    k.setStranica(a);
    return k;
  }

  public static void main(String[] args)
  {
    Glavni g = new Glavni();
    Lik[] poljeLikov = { 
        g.narediKvadrat(1), 
        g.narediKvadrat(2), 
        g.narediPravokotnik(1,2), 
        g.narediPravokotnik(2,3)};
    for(int i = 0;i < poljeLikov.length;i++)
    {
      poljeLikov[i].izrisi();
    }
  }
}


Tako, na hitro. Upam, da ni napak. Stestiraj. Če bi naredil ustrezne konstruktorje v pravokotniku oz. kvadratu, bi bila rešitev še krajša (brez metod narediKvadrat() in narediPravokotnik()).

Zgodovina sprememb…

  • spremenil: kopernik ()

Camel ::

Hvala ti, mi deluje sedaj vredu. Spremeniti sem samo se mogel metodi izrisi(), ker ne smejo sprejemati nobenega argumenta.
bi mi lahko prosim samo še namignil kako bi naredil konstruktor? hvala še enkrat

Lp
Dolce far niente

kopernik ::

Torej v npr. razred kvadrat :
class Kvadrat implements Lik {
  private int stranica;
  
  public Kvadrat(int stranica) {
    setStranica(stranica);
  }

  public void setStranica(int stranica)  {
    this.stranica= stranica;
  }

  public int getStranica() { 
    return stranica; 
  }

  public void izrisi() {
    for(int i=0;i < getStranica();i++)
    {
      for(int j=0;j < getStranica();j++)
      {
        System.out.print("*");
      }
      System.out.print("\n");
    }
  }
}


Glavni bi zgledal takole :
public class Glavni
{
  public static void main(String[] args)
  {
    Lik[] poljeLikov = { 
        new Kvadrat(1),
        new Kvadrat(4),
        new Pravokotnik(1,4),
        new Pravokotnik(2,3)};
    for(int i = 0;i < poljeLikov.length;i++)
    {
      poljeLikov[i].izrisi();
    }
  }
}

Zgodovina sprememb…

  • spremenil: kopernik ()

Camel ::

Najlepša ti hvala 8-)
Dolce far niente


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] Zamenjat char v stringu na dolocenmu indeksu?

Oddelek: Programiranje
5488 (450) TipyTop
»

C# je mozna referenca do int izven funkcije (direkt v classu torej)

Oddelek: Programiranje
8978 (792) TopCat
»

Java zvezdice - malo drugače

Oddelek: Programiranje
81718 (1520) Leyla_
»

[Java] Deljenje in ostanek

Oddelek: Programiranje
142068 (1652) pr2501
»

c# array objektov

Oddelek: Programiranje
5733 (666) zoune

Več podobnih tem