Wykład 2: Podstawy Języka

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

Wykład 4: Klasy i Metody

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

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

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

Programowanie w Internecie. Java

Podstawy i języki programowania

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

Programowanie obiektowe

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Wykład 7: Pakiety i Interfejsy

Programowanie obiektowe

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

1 Atrybuty i metody klasowe

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

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

Programowanie obiektowe

Dokumentacja do API Javy.

Wykład 8: klasy cz. 4

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

Enkapsulacja, dziedziczenie, polimorfizm

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

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

Rozdział 4 KLASY, OBIEKTY, METODY

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

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

Multimedia JAVA. Historia

Podstawy i języki programowania

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

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

Programowanie obiektowe

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

Programowanie obiektowe zastosowanie języka Java SE

Platformy Programistyczne Podstawy języka Java

Definiowanie własnych klas

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

Materiały do zajęć VII

Podstawy programowania obiektowego

Programowanie urządzeń mobilnych

Aplikacje w środowisku Java

Wprowadzenie do języka Java

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

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Podstawowe części projektu w Javie

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

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

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

Wykład 6: Dziedziczenie

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

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

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

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

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Zmienne, stałe i operatory

Spis treści. 1 Java T M

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

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


Polimorfizm, metody wirtualne i klasy abstrakcyjne

Podstawy Języka Java

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Programowanie obiektowe

Programowanie obiektowe

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

Java EE produkcja oprogramowania

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

Definicje klas i obiektów. Tomasz Borzyszkowski

Wykład 3 Składnia języka C# (cz. 2)

Wykład 5: Klasy cz. 3

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

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

Tworzenie aplikacji w języku Java

Java Język programowania

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

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

Tablice, funkcje - wprowadzenie

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

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

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

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

Programowanie w Javie wykład 9 Klasy wewnętrzne, klasy anonimowe Klasy opakowujące

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Podstawy otwartych języków programowania Przechowywanie danych

Języki i techniki programowania Ćwiczenia 2

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

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Programowanie w Javie - wykład 2

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

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Ćwiczenie 1. Przygotowanie środowiska JAVA

Programowanie obiektowe

Transkrypt:

Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście 11.równoległość 12.interfejs graficzny 13.programy sieciowe 14.obsługa baz danych 15.obsługa serwerów

Wykład 2: Zagadnienia obiekty: deklaracja, tworzenie, usuwanie typy podstawowe, tablice pola i metody klas pola i metody statyczne pierwszy program: kompilacja i interpretacja typowe zadania programistyczne

Deklaracja Obiektu Wszystko w Javie jest obiektem. Deklaracja tworzy odwołanie do obiektu s typu/klasy String: String s Obiekt wskazywany przez s nie istnieje: s.length()

Stworzenie Obiektu Deklaracja oraz inicjacja odwołania do obiektu s typu/klasy String: String s = new String( abc ); Teraz s wskazuje na konkrety obiekt utworzony w pamięci, o wartości abc. s.length()

Przechowywanie Danych 1.rejestry szybka pamięć wewnątrz procesora, ograniczona liczba, niedostępne z programu 2.stos - część RAM, szybki dostęp, rozmiar i czas życia danych znane w czasie kompilacji, odwołania do obiektów 3.sterta część RAM, rozmiar i czas życia danych nieznane w czasie kompilacji, składowanie obiektów, wolniejszy dostęp

Przechowywanie Danych 4.obszar statyczny: część RAM, dane dostępne w dowolnym momencie z programu, słowo kluczowe static 5.obszar stałych: w kodzie programu, ewentualnie w pamięci ROM 6.obszar spoza RAM: obiekty trwałe (zachowują stan między wywołaniami programu), zamiana obiektów w strumień bajtów (do przesłania/zapisu).

Typy Podstawowe: Powód Tworzenie obiektów małych na stercie (przez new) nie jest efektywne. Integer i = new Integer(1); Typ podstawowy: int i = 1; Tworzy się zmienna która nie jest odwołaniem do obiektu, a wartością.

Typy Podstawowe: Lista typ rozmiar klasa boolean Boolean char 16 Character byte 8 Byte short 16 Short int 32 Integer long 64 Long float 32 Float double 64 Double void Void

Typy Podstawowe: Własności Rozmiar każdego typu jest niezmienny programy są przenośne. Wszystkie typy numeryczne są ze znakiem. Klasa opakowująca typ podstawowy pozwala umieszczać dane na stercie: Integer i = new Integer(1);

Zasięg Zmiennych Zasięg przez położenie nawiasów: { } int i = 1; // dostepny i { int j = 2; // dostepne i, j } i = j // dostepny i

Przesłanianie Niedozwolone Komunikat błędu zmienna już istnieje: { } int i = 1; { int i = 2; // niedozwolone }

Zasięg Obiektów Życie obiektów jest inne od życie zmiennych typów podstawowych. { } String s = new String( abc ); Odwołanie s nie istnieje poza zasięgiem deklaracji, natomiast obiekt wskazany przez s będzie nadal istniał.

Niszczenie Obiektów Obiekty utworzone przez new istnieją tak długo jak są potrzebne. Co nas chroni przed przepełnieniem pamięci i zablokowaniem programu? Odśmiecacz pamięci sprawdza obiekty utworzone przez new i wykrywa te, do których nie ma więcej odwołań.

Tworzenie Typów: Klasy Nowe typy obiektów zawarte są w klasach. Deklaracja klasy: class NazwaTypu {... } Utworzenie obiektów klasy: NazwaTypu a = new NazwaTypu();

Definicja Klasy Klasa zawiera dwa rodzaje elementów: 1.pola obiekty dowolnego typu lub zmienne typów podstawowych 2.metody komunikaty które może otrzymać dany obiekt

Pola Klas Każdy obiekt uzyskuje własny obszar pamięci dla swoich zmiennych: class TylkoDane { } int i; float f; Double d; Obiekty nie dzielą zmiennych między sobą.

Odwołania do Pól Utworzenie obiektu klasy: TylkoDane d = new TylkoDane(); Odwołanie do pól obiektu d: d.i = 47; d.f = 1.1f; d.d = new Double(1.0d);

Wartości Domyślne Pól Gdy pole jest typu podstawowego, jeśli nie zainicjowane, to otrzyma wartość domyślną: boolean false char byte short int 0 long '\u0000' (byte)0 (short)0 0L float 0.0f

Wartości Domyślne Pól Inicjalizacja jest gwarantowana dla zmiennych: typu podstawowego deklarowanych jako składowe klas Inicjalizacja nie dotyczy zmiennych lokalnych które nie są polami w klasie. int i;

Metody Klas Metoda określa komunikat które może otrzymać dany obiekt: typzwracany nazwa(/*argumenty*/) { } ciało metody Deklarowane tylko jako części składowe klas, i wywoływane na rzecz obiektu.

Deklaracja Metody typzwracany to typ wartości zwracanych przez metodę. argumenty to typy i nazwy lista argumentów przekazywanych metodzie. ciało metody to definicja metody.

Wywołanie Metody Podanie nazwy obiektu, kropki, nazwy metody, i jej listy argumentów: nazwaobiektu.nazwametody (arg1,arg2) Inaczej wysyłanie komunikatu do obiektu. Obiekt musi być upoważniony: nazwaobiektu.nieistnieje()

Argumenty Metody Lista obiektów i ich klas które mogą być przekazane metodzie: int pamiec(string s) { } return s.length()*2; s jest referencją do obiektu. length jest jedną z metod łańcucha s.

Wynik Metody return pełni dwie funkcje: 1.określa opuszczenie metody 2.określa wartość zwracaną (jeśli jest) Typ void - metoda nie zwraca wartości: void nic1() { return; } void nic2() {}

Wykorzystanie Innych Klas Gdzie znajduje się klasa? w tym samy pliku źródłowym użyć użyj klase ArrayList: import java.util.arraylist; wszystkie w pakiecie java.util: import java.util.*;

Pola Statyczne Deklaracja pól statycznych: class StaticTest { static int i = 47; } st1.i i st2.i są te same: StaticTest st1 = new StaticTest(); StaticTest st2 = new StaticTest();

Odwołania do Pól Statycznych Odwołanie przez obiekty klasy: st1.i++ Odwołanie bez obiektu klasy: StaticTest.i++

Metody Statyczne Możliwość wywołania metody bez konieczności tworzenia obiektu (np. main): class StaticFun { } static void incr() { } StaticTest.i++

Wywołanie Metod Statycznych Przez obiekt: StaticFun sf = new StaticFun(); sf.incr(); Przez klasę: StaticFun.incr();

Pierwszy Program Program wyświetla na ekranie bieżącą datę: //HelloDate.java import java.util.*; public class HelloDate { public static void main(string [] args) { System.out.println( Dzisiaj jest: ); System.out.println(new Date()); }

Komentarze komentarz: //HelloDate.java inny rodzaj komentarza to: /* To jest komentarz, * który rozciąga sie na * wiele wierszy */

Pakiety dodatkowe klasy/pakiety które będą potrzebne w kodzie programu: import java.util.*; Pakiet który jest włączany automatycznie do każdego pliku Java: java.lang

Pakiet java.lang Pakiet java.lang zawiera klasę System. Klasa System zawiera pole: static PrintStream out; Klasa PrintStream zawiera metodę: void println(string x)

Pierwszy Program deklaracja klasy HelloDate: public class HelloDate { deklaracja funkcji main: public static void main(string [] args) {

Pierwszy Program wyświetlenie tekstu na ekranie: System.out.println( Dzisiaj jest: ); uzyskanie i wyświetlenie bieżącej daty: System.out.println(new Date());

Kompilacja i Uruchomienie Kompilacja programu: javac HelloDate.java Uruchomienie programu: java HelloDate

Nazewnictwo Nazwy klas rozpoczynają się od dużej litery, każdy kolejny wyraz też z dużej litery: HelloDate Nazwy zmiennych/pól/metod podobnie, ale pierwsza litera jest mała: liczbacalkowitakolorow

Typowe Zadania 1.Wyświetlanie danych na ekranie 2.Przyjmowanie danych z klawiatury

Wyświetlanie Danych class Wyswietl { public static void main(string args[]) { String s = 1 mila to ; double d = 1.609; System.out.print(s); System.out.print(d); System.out.print( kilometrow\n ); } }

Wyświetlanie Danych definicja klasy Wyswietl: class Wyswietl { Klasa musi być zapisana w pliku o tej samej nazwie: Wyswietl.java

Wyświetlanie Danych definicja funkcji main: args jest tablicą argumentów z linii poleceń: public static void main(string args[]) { public - dostępność funkcji static - przypisanie funkcji do klasy void - typ zwracany przez funkcję

Wyświetlanie Danych s to zmienna typu String d to zmienna typu double obie zmienne są inicjowane String s = 1 mila to ; double d = 1.609;

Wyświetlanie Danych zmienna s zostaje wyświetlona zmienna d zostaje wyświetlona tekst kilometrow\n zostaje wyświetlony ze zmianą nowej linii: System.out.print(s); System.out.print(d); System.out.print( kilometrow\n );

Przyjmowanie Danych import java.io.*; class Przyjmowanie { public static void main(string args[]) { String input = ; BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); System.out.println( Wpisz tekst: );

Przyjmowanie Danych } } try { input = in.readline(); } catch(ioexception e) { System.out.println(e); } System.out.print( Wpisales: ); System.out.println(input);

Przyjmowanie Danych Importujemy pakiet biblioteczny java.io: import java.io.*; Deklaracja klasy Przyjmowanie: class Przyjmowanie {

Przyjmowanie Danych Deklaracja funkcji main: public static void main(string args[]) { Deklaracja zmiennej input typu String: String input = ;

Przyjmowanie Danych Deklaracja strumienia wejściowego in: BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); in to obiekt klasy BufferedReader który buforuje operacje odczytu danych.

Przyjmowanie Danych Wypisanie tekstu ze zmianą linii: System.out.println( Wpisz tekst: );

Przyjmowanie Danych Wywołanie funkcji czytającej readline: try { input = in.readline(); } catch(ioexception e) { } System.out.println(e); Wyjątek IOException, prowadzi do wyświetlenia komunikatu błędu.

Przyjmowanie Danych Wyświetlenie tekstu i wartości zmiennej input wpisanej przez użytkownika: System.out.print( Wpisales: ); System.out.println(input);