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

Podobne dokumenty
Wykład 4: Klasy i Metody

Rozdział 4 KLASY, OBIEKTY, METODY

Podstawowe części projektu w Javie

Dokumentacja do API Javy.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

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

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

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Programowanie obiektowe

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Materiały do zajęć VII

Aplikacje w środowisku Java

Programowanie obiektowe

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

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

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Definicje klas i obiektów. Tomasz Borzyszkowski

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

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

Programowanie obiektowe

Definiowanie własnych klas

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Programowanie obiektowe

Enkapsulacja, dziedziczenie, polimorfizm

Wykład 8: klasy cz. 4

Zaawansowane programowanie w języku C++ Klasy w C++

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Podstawy programowania obiektowego

1 Atrybuty i metody klasowe

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Wykład 7: Pakiety i Interfejsy

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

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

Wykład 2: Podstawy Języka

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

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

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

Multimedia JAVA. Historia

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

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Programowanie w Internecie. Java

Programowanie obiektowe

Java Język programowania

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

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

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

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

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Języki i techniki programowania Ćwiczenia 2

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 10

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany


Platformy Programistyczne Podstawy języka Java

Dziedziczenie. Tomasz Borzyszkowski

Programowanie obiektowe

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

KLASY, INTERFEJSY, ITP

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

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Podstawy programowania obiektowego

Podstawy Języka Java

Programowanie urządzeń mobilnych

Programowanie obiektowe

Programowanie w Javie - wykład 2

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

Czym jest stos i sterta?

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Wykład 6: Dziedziczenie

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

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

TEMAT : KLASY DZIEDZICZENIE

Aplikacje w środowisku Java

Java: interfejsy i klasy wewnętrzne

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

2. Składnia, środowisko i konwencje w Javie

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

JAVA- wykład 2 Klasy

Metody Metody, parametry, zwracanie wartości

Kurs WWW. Paweł Rajba.

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

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

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

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

Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne

Transkrypt:

Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods - definiuje interakcję obiektu ze światem zewnętrznym (odwołanie do metody z kropką), konstruktory (niektóre specjalne metody), bloki, zagnieżdżone klasy i interfejsy. Jak wiemy, zmienna, która jest tworzona wewnątrz klasy, ale poza jej metodą, jest znana jako zmienna instancji. Zmienna instancji nie zajmuje pamięci podczas kompilacji. Zajmuje pamięć w czasie wykonywania programu, gdy tworzony jest obiekt lub instancja. Słowo kluczowe new służy do alokacji pamięci w środowisku wykonawczym. Wszystkie obiekty mają przydzielaną pamięć na stercie. dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 1 / 13

Modyfikatory dostępu W Javie mamy 4 modyfikatory dostępu: 1 private - dostępność tylko w klasie; 2 default - jeśli nie używamy żadnego modyfikatora, traktowany jest on jako domyślny ; modyfikator domyślny daję dostępność tylko w pakiecie; 3 protected - dostępność w pakiecie i poza pakietem, ale tylko przez dziedziczenie; 4 public - dostępność wszędzie. Klasa nie może być prywatna ani chroniona z wyjątkiem klas zagnieżdż dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 2 / 13

W praktyce tworzymy różne klasy w osobnych plikach (w odpowiednich pakietach). Jedna z klas projektu musi mieć metodę main(). Przykład: Student.java package mainstudent; class Student { //określenie pól String imie; String nazwisko; int ects; MainStudent.java package mainstudent; public class MainStudent { public static void main(string[] args) { Student s= new Student(); // zainicjowanie obiektu //przez zmienna referencyjna s.imie="adam"; s.nazwisko="winter"; s.ects=62; System.out.println(s.imie+" "+ s.nazwisko+", ECTS: "+s.ects); dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 3 / 13

Student.java package mainstudent; class Student { private String imie; private String nazwisko; private int ects; void insertstudent(string nam, String sur, int e){ imie=nam; nazwisko=sur; ects=e; void printdata(){ System.out.println(imie+" "+nazwisko+", ECTS: "+ects); Inicjowanie poprzez metodę MainStudent.java package mainstudent; public class MainStudent { public static void main(string[] args) { Student s= new Student(); s.insertstudent("maria", "Summer", 81); s.printdata(); dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 4 / 13

Konstruktory W języku Java konstruktor jest blokiem kodu podobnym do metody. Jest wywoływana, gdy instancja obiektu jest tworzona, a pamięć jest przydzielana dla obiektu. Jest to specjalny typ metody, który służy do inicjalizacji obiektu. Za każdym razem, gdy obiekt jest tworzony przy użyciu słowa kluczowego new, wywoływany jest co najmniej jeden konstruktor. Nie trzeba pisać konstruktora dla klasy. Jest tak, ponieważ kompilator java tworzy domyślny konstruktor, jeśli klasa go nie posiada. Nazwa konstruktora musi być taka sama, jak nazwa klasy. Blok konstruktora może być pusty. Wtedy pola obiektu mają wartości domyślne. Konstruktor nie może mieć wyraźnego typu zwracanego. Konstruktor Java nie może być abstract, static, final ani synchronized. dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 5 / 13

Konstruktor domyślny Domyślny konstruktor służy do nadania wartości domyślnych dla obiektu, takich jak 0, null itd., w zależności od typu. class Student { private String imie; private String nazwisko; private int ects; class Student { private String imie; private String nazwisko; private int ects; Student(){ // konstruktor domyslny Student(){ //z wartosciami poczatkowymi // konstruktor domyslny imie="ole"; //pusty blok nazwisko="lion"; ects=10; Wtedy możemy utworzyć instancję obiektu: Student s=new Student(); dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 6 / 13

Konstruktor z parametrami Konstruktor o określonej liczbie parametrów nazywany jest sparametryzowanym konstruktorem. Sparametryzowany konstruktor służy do dostarczania różnych wartości różnym obiektom. Możemy jednak podawać również te same wartości. class Student { private String imie, nazwisko; private int ects; Student(String nam, String sur, int e){ imie=nam; nazwisko=sur; ects=e; Wtedy możemy utworzyć instancje obiektów: Student s1=new Student("Anna", "Pol", 43); Student s2=new Student("Adam", "West", 64); dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 7 / 13

Możliwe użycie słowa this Słowa kluczowego this można użyć do wskazania bieżącej zmiennej instancji klasy. W poprzednim przykładzie zmienne lokalne (formalne argumenty) i zmienne instancji były różne. Jeśłi chcemy używać tych samych parametrów (formalnych argumentów) i zmiennych instancji, używamy słowa this do ich rozróżnienia. class Student { private String imie, nazwisko; private int ects; Student(String imie, String nazwisko, int ects){ this.imie=imie; this.nazwisko=nazwisko; this.ects=ects; dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 8 / 13

Przeciążanie konstruktora W języku Java konstruktor jest podobny do metody, ale bez typu zwracanego. Może być również przeciążony, podobnie jak metody Java. Przeciążanie konstruktorów w Javie to technika posiadania więcej niż jednego konstruktora z różnymi listami parametrów. Są one ułożone w taki sposób, że każdy konstruktor wykonuje inne zadanie. Są one różnicowane przez kompilator pod względem liczby parametrów na liście i ich typów. dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 9 / 13

Obiekt anonimowy Anonimowy oznacza po prostu bezimienny. Obiekt, który nie ma referencji, jest znany jako obiekt anonimowy. Może być używany tylko w momencie tworzenia obiektu. Jeśli musimy użyć obiektu tylko jeden raz, anonimowy obiekt jest dobrym rozwiązaniem. Test.java Me.java public class Me { public Me() { System.out.println("=========="); System.out.println("Made by XXX"); System.out.println("==========="); class Test{ public static void main(string[] args) { //blok kodu new Me(); //obiekt anonimowy //klasy Me Możliwe jest także wywoływanie metody poprzez obiekt anonimowy, np. new A.print(); dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 10 / 13

Zadania Zadanie 1. Utworzyć klasę Prostokat, która przechowuje dane o prostokącie (wysokość, szerokość) oraz ma metody zwracające pole i obwód. Napisać odpowiednie konstruktory. Przetestować klasę, tworząc obiekty, obiekty anonimowe i wywołując metody. dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 11 / 13

Zadania Zadanie 2. Utworzyć klasę Pattern tak, aby mógł być wykonany poniższy kod: Pattern p1 = new Pattern(); Pattern p2 = new Pattern( o, $,5); System.out.println(p1.giveDescription()); p1.print(); System.out.println(p2.giveDescription()); p2.print(); p1.changedata( -, +,7); p1.print(); Oczekiwany efekt: Pattern 1: 1 x (?,?).?? Pattern 2: 5 x (o,$). o$o$o$o$o$ -+-+-+-+-+-+-+ dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 12 / 13

Zadania Zadanie 3. Napisać program zarządzający kontami bankowymi danego właściciela. Pomyśleć o odpowiednich polach i metodach. Przetestować program. dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 13 / 13