Forum Forum 1 Grupy Ćwiczeniowej Strona Główna

Forum 1 Grupy Ćwiczeniowej
Forum studentów informatyki Politechniki Białostockiej
 

Programowanie Obiektowe - [java] laborki z Boldakiem, figury

 
Napisz nowy temat   Odpowiedz do tematu    Forum Forum 1 Grupy Ćwiczeniowej Strona Główna -> 3 semestr
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
czart



Dołączył: 02 Mar 2007
Posty: 168
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Z lasu

PostWysłany: Sob 23:15, 17 Lis 2007    Temat postu: Programowanie Obiektowe - [java] laborki z Boldakiem, figury


Kod:

package trojkatyczworokaty;
import java.util.*;
public class Punkt
{   
    /** Creates a new instance of Punkt */
    public Punkt()
    {
        Random m = new Random();
        x = m.nextInt(30);
        y = m.nextInt(30);
    }
   
    public Punkt(Punkt p)
    {
        x = p.x;
        y = p.y;
    }
   
    public Punkt(int x, int y)
    {
        this.x = x;
        this.y = y;
    }
   
    public void przesun(int x, int y)
    {
        this.x += x;
        this.y += y;
    }
   
    public String toString()
    {
        return ("Wspolrzedne punktu: "+x+" : "+y);
    }   
   
    private int x;
    private int y;
}



Kod:

package trojkatyczworokaty;
public class Linia
{
   
    /** Creates a new instance of Linia */
    public Linia(Punkt p1, Punkt p2)
    {
        this.p1 = new Punkt(p1);
        this.p2 = new Punkt(p2);
    }
   
    public Linia(Linia l)
    {
        p1 = new Punkt(l.p1);
        p2 = new Punkt(l.p2);
    }
   
    public void przesun(int x, int y)
    {
        p1.przesun(x,y);
        p2.przesun(x,y);
    }
   
    public String toString()
    {
        return ("Wspolrzedne linii:\n\t"+p1+"\n\t"+p2);
    }
   
    private Punkt p1,p2;   
}


Kod:

package trojkatyczworokaty;
public class Trojkat
{
   
    /** Creates a new instance of Trojkat */
    public Trojkat(Punkt p1, Punkt p2, Punkt p3)
    {
        l1 = new Linia(p1,p2);
        l2 = new Linia(p2,p3);
        l3 = new Linia(p3,p1);
    }
   
    public Trojkat(Trojkat tr)
    {
        l1 = new Linia(tr.l1);
        l2 = new Linia(tr.l2);
        l3 = new Linia(tr.l3);
    }
   
    public void przesun(int x, int y)
    {
        l1.przesun(x,y);
        l2.przesun(x,y);
        l3.przesun(x,y);
    }
   
    public String toString()
    {
        return ("Trojkat:\n\tLinia nr1: "+l1+"\n\tLinia nr2: "+l2+"\n\tLinia nr3: "+l3);
    }
   
    private Linia l1,l2,l3;   
}


Kod:

package trojkatyczworokaty;
public class Czworokat
{
   
    /** Creates a new instance of Czworokat */
    public Czworokat(Punkt p1, Punkt p2, Punkt p3, Punkt p4)
    {
        l1 = new Linia(p1,p2);
        l2 = new Linia(p2,p3);
        l3 = new Linia(p3,p4);
        l4 = new Linia(p4,p1);
    }
   
       public Czworokat(Czworokat cz)
    {
        l1 = new Linia(cz.l1);
        l2 = new Linia(cz.l2);
        l3 = new Linia(cz.l3);
        l4 = new Linia(cz.l4);
    }
   
   
    public void przesun(int x, int y)
    {
        l1.przesun(x,y);
        l2.przesun(x,y);
        l3.przesun(x,y);     
        l4.przesun(x,y);
    }
   
 
    public String toString()
    {
        return ("Czworokat:\n\tLinia nr1: "+l1+"\n\tLinia nr2: "+l2+"\n\tLinia nr3: "+l3+"\n\tLinia nr4: "+l4);
    }
   
   
   
    private Linia l1,l2,l3,l4;
}


Kod:

package trojkatyczworokaty;
import java.util.ArrayList;

/**
 *
 * @author student
 */
public class Obraz
{
   
    /** Creates a new instance of Obraz */
    public Obraz()
    {
    }
   
    public void dodajTrojkat (Trojkat tr)
    {
        tTrojkaty.add(new Trojkat(tr));
    }
   
    public void dodajCzworokat (Czworokat cz)
    {
        tCzworokaty.add(new Czworokat(cz));
    }
   
    public void wypiszStan()
    {
        System.out.println("Trojkatow: "+tTrojkaty.size()+"\n");
        System.out.println("Czworokatow: "+tCzworokaty.size()+"\n");
    }
   
    public String toString()
    {
        String wynik="";
       
        int i;
        wynik+=("Obraz obiekty:\nTrojkaty:\n========================\n");
        for(i=0;i<tTrojkaty.size();i++)
        {
            wynik+=(tTrojkaty.get(i));
        }
       
        wynik+=("====================\nCzworokaty:\n");
        for(i=0;i<tCzworokaty.size();i++)
        {
            wynik+=(tCzworokaty.get(i));
        }
        return wynik;
    }
   
    public void przesun(int x, int y)
    {
        int i;
        for(i=0;i<tTrojkaty.size();i++)
        {
           tTrojkaty.get(i).przesun(x,y);
        }
       
        for(i=0;i<tCzworokaty.size();i++)
        {
           tCzworokaty.get(i).przesun(x,y);
        }
       
    }
   
   
    private ArrayList<Trojkat> tTrojkaty = new ArrayList<Trojkat>();
    private ArrayList<Czworokat> tCzworokaty = new ArrayList<Czworokat>();
}


Kod:

package trojkatyczworokaty;
public class Main
{
   
    /** Creates a new instance of Main */
    public Main()
    {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
       Punkt p1 = new Punkt();
       Punkt p2 = new Punkt();
       Punkt p3 = new Punkt();
       Punkt p4 = new Punkt();
       Linia l = new Linia(p1,p2);
       Trojkat t = new Trojkat(p1,p2,p3);
       Czworokat cz = new Czworokat(p1,p2,p3,p4);
       Obraz obr = new Obraz();
       obr.dodajCzworokat(cz);
       obr.dodajTrojkat(t);
       obr.przesun(2,2);
       System.out.println(obr);       
    }
   
}
Powrót do góry
Zobacz profil autora
czart



Dołączył: 02 Mar 2007
Posty: 168
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Z lasu

PostWysłany: Sob 10:47, 24 Lis 2007    Temat postu:

To samo tylko z dziedziczeniem. Klasy zostają te same. Zmieniłem nazwe paczki na Dziedziczenie


Kod:
...
public class Czworokat extends Figura
...



Kod:
...
public class Trojkat extends Figura
...



Kod:
package Dziedziczenie;

public class Figura
{
    public Figura()
    {
    }
   
}



Kod:
package Dziedziczenie;

public class Kwadrat extends Prostokat
{   
    /** Creates a new instance of Kwadrat */
    public Kwadrat(Punkt lg, int a)
    {
        super(lg,a,a);
    }   
}



Kod:
package Dziedziczenie;
public class Prostokat extends Czworokat
{
   
    /** Creates a new instance of Prostokat */
    public Prostokat(Punkt lg, int a, int b)
    {       
        super(lg,
                new Punkt(lg.getX()+a,lg.getY()),
                new Punkt(lg.getX()+a,lg.getY()-b),
                new Punkt(lg.getX(),lg.getY()-b));
    }
   
}


W klasie Punkt 2 nowe metody:

Kod:
...
    public int getX()
    {
        return x;
    }
   
    public int getY()
    {
        return y;
    }
    ...




Kod:

package Dziedziczenie;
public class Main
{
    public static void main(String[] args)
    {   
        Figura f[] = new Figura[10];
        f[0] = new Prostokat(new Punkt(1,1),3,5);
        f[1] = new Prostokat(new Punkt(2,3),7,6);
        f[2] = new Kwadrat(new Punkt(3,3),4);
        f[3] = new Trojkat(new Punkt(1,1),new Punkt(3,3),new Punkt(6,6));
        f[4] = new Kwadrat(new Punkt(3,2),6);
        f[5] = new Kwadrat(new Punkt(3,1),8);
       
        int i =0;
        int kwadraty=0;
        int trojkaty=0;
        int prostokaty=0;
       
        for(i=0;i<10;i++)
        {
            if(f[i] instanceof Kwadrat) kwadraty++;
            if(f[i] instanceof Trojkat) trojkaty++;
            //if((f[i] instanceof Prostokat)&&!(f[i] instanceof Kwadrat)) prostokaty++;
            if(f[i] instanceof Prostokat) prostokaty++;
        }
       
        System.out.println(kwadraty+" kwadratów, "+trojkaty+" trojkątów i "+prostokaty+" prostokatow.");       
    }
 }
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Forum 1 Grupy Ćwiczeniowej Strona Główna -> 3 semestr Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
deoxBlue v1.0 // Theme created by Sopel stylerbb.net & programosy.pl

Regulamin