Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne

Podobne dokumenty
Podejście obiektowe. Tablice (1) obiektów

Języki i metody programowania Java INF302W Wykład 2 (część 1)

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

DOSTĘP DO METOD I ZMIENNYCH, TABLICE. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla kaŝdego, Helion 2001)

Comparable<Klasa_uzytkownika>

Wykład 2: Podstawy Języka

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Języki i metody programowania Java. Wykład 2 (część 2)

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

StringTokenizer bon = new StringTokenizer(bufor.readLine());

Programowanie w Internecie. Java

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe

Tworzenie aplikacji w języku Java

Języki i metody programowania Java Lab2 podejście obiektowe

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

PODSTAWOWE ELEMENTY JĘZYKA JAVA INSTRUKCJE 1. Pętle

Programowanie obiektowe

Podstawy programowania obiektowego

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Programowanie obiektowe

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Wykład 4: Klasy i Metody

Podstawy i języki programowania

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Programowanie obiektowe

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 7: Pakiety i Interfejsy

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Platformy Programistyczne Podstawy języka Java

Podstawy i języki programowania

Polimorfizm, metody wirtualne i klasy abstrakcyjne

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

Wykład 5: Więcej o Klasach i Metodach

Definiowanie własnych klas

Wprowadzenie do języka Java

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

1 Atrybuty i metody klasowe

Tablice i łańcuchy znakowe jako obiektowe typy danych. dr Jarosław Skaruz

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie obiektowe

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Programowanie, algorytmy i struktury danych

11.6 Klasa do obsługi liczb wymiernych

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Aplikacje w środowisku Java

Podstawowe części projektu w Javie

Metody Metody, parametry, zwracanie wartości

Programowanie obiektowe

Dokumentacja do API Javy.

Programowanie w Javie - wykład 2

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

{ Dane1 d=(dane1)o; return nazwisko.equals(d.nazwisko) && srednia==d.srednia && uwagi.equals(d.uwagi); }

Programowanie obiektowe zastosowanie języka Java SE

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Definicje klas i obiektów. Tomasz Borzyszkowski

Programowanie obiektowe

Struktury, unie, formatowanie, wskaźniki

Spis treści. 1 Java T M

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Szablony klas, zastosowanie szablonów w programach

Klasy abstrakcyjne, interfejsy i polimorfizm

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Programowanie urządzeń mobilnych

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

PARADYGMATY PROGRAMOWANIA Wykład 4

JAVA- wykład 2 Klasy

Definiowanie własnych klas

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Programowanie obiektowe

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Java: interfejsy i klasy wewnętrzne

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Wywoływanie metod zdalnych

Programowanie obiektowe

Programowanie 2. Język C++. Wykład 3.

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Rozdział 4 KLASY, OBIEKTY, METODY

Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja...

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Transkrypt:

Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne import javax.swing.*; import java.util.*; public class Napis4 { String wynik = ""; static int ile_obiektow = 0; public void Inicjuj() { ile_obiektow++; wynik+=""; 1) Metoda niestatyczna, oprócz atrybutów niestatycznych i metod niestatycznych, może używać atrybutów statycznych i metod statycznych danej klasy. 2) Należy utworzyć obiekt, aby wywołać metodę niestatyczną klasy tego obiektu. 3) Atrybut statyczny należy do klasy i dlatego jest wspólny dla wszystkich obiektów. Dlatego może być on używany w dowolnym kontekście: statycznym i niestatycznym 4) W metodzie statycznej można używać tylko atrybutów statycznych i metod statycznych danej klasy 1) Każdy obiekt, który używa w metodzie statycznej lub niestatycznej atrybutu statycznego, używa tego atrybutu jako wspólnego: 2) Każdy obiekt ma własny atrybut wynik oraz wspólny atrybut ile_obiektow public void Dopisz_do_wyniku(String lan) { wynik+=lan+"\n"; public void Rysuj_graficznie() { JOptionPane.showMessageDialog(null, wynik); public void Rysuj_konsolowo() { System.out.println(wynik); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 1

public static void main(string[] args) { String s; Napis4 napis1, napis2; napis1=new Napis4(); napis2=new Napis4(); napis1.inicjuj(); napis2.inicjuj(); s=joptionpane.showinputdialog(null,"podaj lancuch do obiektu 1"); napis1.dopisz_do_wyniku(s); s=joptionpane.showinputdialog(null,"podaj lancuch do obiektu 2"); napis2.dopisz_do_wyniku(s); napis1.rysuj_graficznie(); napis2.rysuj_graficznie(); napis1.rysuj_konsolowo(); napis2.rysuj_konsolowo(); System.out.println("Sa "+napis1.ile_obiektow+" obiekty"); System.out.println("Sa "+napis2.ile_obiektow+" obiekty"); System.out.println("Sa "+Napis4.ile_obiektow+" obiekty"); System.exit(0); // nazwę obiektów napis1 I napis2 można pominąć przy odwołaniu do atrybutu // ile_obiektow, ponieważ jest to statyczny atrybut (wspólny dla obu obiektów) Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 2

Przykład 2 Klasy z z atrybutami obiektowymi typu static Klasa System Atrybuty: static PrintStream err //The "standard" error output stream. static InputStream in //The "standard" input stream. static PrintStream out // The "standard" output stream. Metody // out jest atrybutem obiektowym statycznym, czyli istnieje jako obiekt, dlatego, można używać jego metod (statycznych i niestatycznych) bez tworzenia obiektu klasy System. System.out.println( Proba ); W metodach innych klasach zawsze do wywoływanych składowych statycznych dodajemy nazwę ich klasy np. System.out Klasa PrintStream //metody dotyczące drukowania void print(boolean b) Print a boolean value. void print(char c) Print a character. void print(char[] s) Print an array of characters. void print(double d) Print a double-precision floating-point number. void print(float f) Print a floating-point number. void print(int i) Print an integer. void print(long l) Print a long integer. void print(object obj) Print an object. void print(string s) Print a string. void println() Terminate the current line by writing the line separator string. void println(boolean x) Print a boolean and then terminate the line. void println(char x) Print a character and then terminate the line. void println(char[] x) Print an array of characters and then terminate the line. void println(double x) Print a double and then terminate the line. void println(float x) Print a float and then terminate the line. void println(int x) Print an integer and then terminate the line. void println(long x) Print a long and then terminate the line. void println(object x) Print an Object and then terminate the line. void println(string x) Print a String and then terminate the line. 1. Tablice w aplikacjach typu Windows Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 3

Tablice 1. Tablica w Javie jest obiektem Deklarowanie tablicy String [] nazwy; //równoważne deklaracje zmiennej tablicowej String nazwy []; int liczby[]; //zamienna tablicowa deklarująca elementy nieobiektowe // czyli referencji do obiektu tablicy, deklarujące elementy obiektowe Tworzenie obiektu tablicowego int liczby []= new int [10;] // utworzono tablicę 10 elementów typu int String nazwy []= new String[10]; // utworzono tablicę 10 referencji typu String, należy dla każdego elementu tablicy przydzielić pamięć Przydział pamięci na elementy obiektowe tablicy np. nazwy[0]= new String( Pewien wiersz ); //przydzielono pamięć na obiekt typu String w pierwszym elemencie tablicy (liczby[0]) Pobranie rozmiaru tablicy nazwy.length Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 4

Przykład 1 import java.lang.*; public class Tablice { public static void main(string args[]) { final int N=5; int liczby [] = new int [N]; for (int i=0; i<liczby.length; i++) { liczby[i]= i; System.out.println(liczby[i]); String nazwy[]=new String[N]; for (int i=0; i<nazwy.length; i++) { nazwy[i]=new String("lancuch "+i); System.out.println(nazwy[i]); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 5

2. Tablice zawierające obiekty 2.1. Definicja elementu tablicy Przykład 2 import javax.swing.*; import java.util.*; class Osoba1 { String nazwisko; float srednia; String uwagi; static int ile_obiektow = 0; public void Inicjuj() {ile_obiektow++; public void Nadaj_nazwisko(String lan) { nazwisko=lan; public String Podaj_nazwisko() {return nazwisko; public void Nadaj_uwagi(String lan) { uwagi=lan; public String Podaj_uwagi() {return uwagi; public void Nadaj_srednia(float srednia_) { srednia=srednia_; public float Podaj_srednia() {return srednia; public void Wstaw() { String S; Inicjuj(); S = JOptionPane.showInputDialog(null, "Podaj nazwisko"); Nadaj_nazwisko(S); S = JOptionPane.showInputDialog(null, "Podaj srednia"); Nadaj_srednia(Float.parseFloat(S)); S =JOptionPane.showInputDialog(null, "Podaj uwagi"); Nadaj_uwagi(S); Autor: Zofia Kruczkiewicz 6

public void Wyswietl() {String napis=""; napis+="\n Nazwisko: "+nazwisko; napis+="\n Średnia: "+srednia; napis+="\n Uwagi: "+uwagi; napis+="\n Liczba osób jest równa "+ile_obiektow; JOptionPane.showMessageDialog(null, napis); public class Cala { static public void main(string args[]) {Osoba1 os1 = new Osoba1(); os1.wstaw(); os1.wyswietl(); System.exit(0); Autor: Zofia Kruczkiewicz 7

2.2. Tablica obiektów operacje wstawiania i wyświetlania Przykład 3 import javax.swing.*; import java.util.*; class Osoba1 {// kod klasy z przykładu 2 zawarty w nawiasach { public class Tablica_osob { static int N=2; static public void main(string args[]) {Osoba1 Dane[] = new Osoba1[N]; int ile; for (ile=0; ile<dane.length;ile++) { Dane[ile]=new Osoba1(); Dane[ile].Wstaw(); for (int i=0; i<ile;i++) Dane[i].Wyswietl(); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 8

2.3. Tablica obiektów operacje wstawiania, wyświetlania i wyszukiwania Przykład 4 import javax.swing.*; import java.util.*; class Osoba1 {// kod klasy z przykładu 3 zawarty w nawiasach { public boolean Szukaj(String s) { return nazwisko.equals(s); public class Tablica_osob_porownanie { static int N=2; static public void main(string args[]) {Osoba1 Dane[] = new Osoba1[N]; int ile; for (ile=0; ile<dane.length;ile++) { Dane[ile]=new Osoba1(); Dane[ile].Wstaw(); for (int i=0; i<ile;i++) Dane[i].Wyswietl(); String s= JOptionPane.showInputDialog(null,"Podaj nazwisko"); for (int i=0; i<ile;i++) { if (Dane[i].Szukaj(s)) Dane[i].Wyswietl(); System.exit(0); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 9

2.4. Tablica obiektów wybór wstawiania, wyświetlania i wyszukiwania Przykład 5 import javax.swing.*; import java.util.*; class Osoba1 {// kod klasy z przykładu 4 zawarty w nawiasach { public class Tablica_osob_menu { static int N=2; static public void main(string args[]) { Osoba1 Dane[] = new Osoba1[N]; int ile=0; String s; char ch; do { s=joptionpane.showinputdialog(null, "Podaj wybor" +"\n1 - Podaj dane kolejnej osoby," +"\n2 - Wyswietl dane osob" +"\n3 - Wyszukaj osobe i wyswietl jej dane" +"\nk - Koniec programu"); ch = s.charat(0); switch(ch) { case '1' : for (ile=0; ile<dane.length;ile++) { Dane[ile]=new Osoba1(); Dane[ile].Wstaw(); case '2' : for (int i=0; i<ile;i++) Dane[i].Wyswietl(); case '3' : s = JOptionPane.showInputDialog(null,"Podaj nazwisko"); for (int i=0; i<ile;i++) { if (Dane[i].Szukaj(s)) Dane[i].Wyswietl(); case 'k' : JOptionPane.showMessageDialog(null, "Koniec programu"); default : JOptionPane.showMessageDialog(null,"Zla opcja"); while (ch!= 'k') ; System.exit(0); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 10

2.5. Tablica obiektów operacje wyboru wstawiania, wyświetlania i wyszukiwania, zmiana rozmiarów tablicy Przykład 6 import javax.swing.*; import java.util.*; class Osoba1 { String nazwisko; float srednia; String uwagi; static int ile_obiektow = 0; public void Inicjuj() { ile_obiektow++; public void Nadaj_nazwisko(String lan) { nazwisko=lan; public String Podaj_nazwisko() { return nazwisko; public void Nadaj_uwagi(String lan) { uwagi=lan; public String Podaj_uwagi() { return uwagi; public void Nadaj_srednia(float srednia_) { srednia=srednia_; public float Podaj_srednia() {return srednia; public void Wstaw() { String S; Inicjuj(); S = JOptionPane.showInputDialog(null, "Podaj nazwisko"); Nadaj_nazwisko(S); S = JOptionPane.showInputDialog(null, "Podaj srednia"); Nadaj_srednia(Float.parseFloat(S)); S =JOptionPane.showInputDialog(null, "Podaj uwagi"); Nadaj_uwagi(S); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 11

public void Wyswietl() {String napis=""; napis+="\n Nazwisko: "+nazwisko; napis+="\n Średnia: "+srednia; napis+="\n Uwagi: "+uwagi; napis+="\n Liczba osób jest równa "+ile_obiektow; JOptionPane.showMessageDialog(null, napis); public boolean Szukaj(String s) { return nazwisko.equals(s); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 12

public class Tablica_osob_menu { static int N; //zmienna typu static, która w programie przechowuje aktualny rozmiar tablicy static public void main(string args[]) { Osoba1 Dane[]=null; //referencja do tablicy, która jest tworzona w opcji 1 int ile=0; String s; char ch; do { s=joptionpane.showinputdialog(null, "Podaj wybor" +" \n1 - Podaj dane kolejnej osoby," +"\n2 - Wyswietl dane osob" +"\n3 - Wyszukaj osobe i wyswietl jej dane" +"\nk - Koniec programu"); ch = s.charat(0); //pobranie opcji switch(ch) {case '1' : s=joptionpane.showinputdialog(null,"podaj rozmiar tablicy"); N=Integer.parseInt(s); Dane=new Osoba1[N]; //utworzenie tablicy for (ile=0; ile<dane.length;ile++) { Dane[ile]=new Osoba1(); //tworzenie elementów tablicy Dane[ile].Wstaw(); case '2' : if (Dane!=null) //jesli tablica istnieje, to można wyswietlac for (int i=0; i<ile;i++) Dane[i].Wyswietl(); case '3' : if (Dane==null) //jeśli tablica nie istnieje, nie można wyszukiwać s = JOptionPane.showInputDialog(null,"Podaj nazwisko"); for (int i=0; i<ile;i++) {if (Dane[i].Szukaj(s)) Dane[i].Wyswietl(); case 'k' : JOptionPane.showMessageDialog(null, "Koniec programu"); default : JOptionPane.showMessageDialog(null,"Zla opcja"); while (ch!= 'k') ; System.exit(0); Autor: Zofia Kruczkiewicz, Programowanie obiektowe Java, Wykład 4_1 13