• Nie Znaleziono Wyników

Programowanie w języku Java

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie w języku Java"

Copied!
33
0
0

Pełen tekst

(1)

Programowanie w języku Java

dr Przemysław Juszczuk

Wykład 1

(2)

Podstawowe informacje

pokój 202B (bywam, ale i tak nie możecie zaglądać :) );

e-mail: przemyslaw.juszczuk(at)ue.katowice.pl;

e-mail: przemyslaw.juszczuk(at)uekat.pl;

strona internetowa: pjuszczuk.pl

informacje o materiałach, terminach oddawania prac –classroom;

spotkania google meet i skype;

konsultacje online google meet i skype o określonych godzinach.

Warunki zaliczenia

test z części teoretycznej 30 % (egzamin online);

kolokwia zaliczeniowe po każdym dziale: 40 % projekt realizowany w zespołach: 20 % aktywność na zajęciach: 10%

dr Przemysław Juszczuk Programowanie w języku Java

(3)

Kontakt

przez Skype: przemo3289,

przez Messengera: https://m.me/przemyslaw.juszczuk przez WhatsApp: https://wa.me/48505854031 przez Steam:

https://steamcommunity.com/profiles/76561197988275370/

(4)

1 wprowadzenie do języka Java;

2 pętle i instrukcje warunkowe;

3 łańcuchy znaków i obsługa łańcuchów;

4 tablice jednowymiarowe, tablice wielowymiarowe;

5 klasy i obiekty;

6 pliki tekstowe, pliki obiektowe, pliki RAF;

7 obsługa wyjątków;

8 kolekcje.

dr Przemysław Juszczuk Programowanie w języku Java

(5)

Szybki wstęp Netbeans;

Main window;

nowe projekty jako console application;

Packages;

public class JavaApplication {} ¡– główna klasa;

public static void main (String[] args) {} ¡– główna metoda;

import bibliotek import.java.awt.∗.

(6)

Podstawowe typy integer;

double;

boolean;

char;

Typy złożone String;

Random;

Object;

File.

dr Przemysław Juszczuk Programowanie w języku Java

(7)

Podstawy – pętle i instrukcje warunkowe kwadrat pusty w środku;

kwadrat z pustą przekątną;

flaga Czech?

Rysunek:Flaga

(8)

Podstawy – pętle i instrukcje warunkowe kwadrat pusty w środku;

kwadrat z pustą przekątną;

flaga Czech?

Rysunek:Flaga

dr Przemysław Juszczuk Programowanie w języku Java

(9)

Podstawy – pętle i instrukcje warunkowe kwadrat pusty w środku;

kwadrat z pustą przekątną;

flaga Czech?

Rysunek:Flaga

(10)

Tablice i łańcuchy

przygotowanie własnej wersji wbudowanych metod String: length, charAt, endsWith, substring, toUpperCase, toLowerCase;

proste funkcje (zwracany typ, void, parametry funkcji);

pisanie własnej funkcji;

szyfr Cezara jako przykład;

tablice jednowymiarowe, tablice wielowymiarowe, tablice nieregularne;

operacje na macierzach.

dr Przemysław Juszczuk Programowanie w języku Java

(11)

struktura projektu;

deklarowanie zmiennych;

instrukcje i bloki instrukcji;

białe znaki;

nazwy zmiennych.

(12)

Podstawowe reguły

komentarze, komentarze blokowe, komentarze przed klasą i funkcją;

notacja wielbłądzia i notacja węgierska;

czytelność kodu.

dr Przemysław Juszczuk Programowanie w języku Java

(13)

FIXME

Oznaczanie wybranych fragmentów kodu jako ”FIXME” – fragment do poprawy.

Example

public double ReadFile(String s) {

double dataFile;

OpenFile(s); // FIXME check, if the file exists dataFile = CollectData(); //

return dataFile;

}

(14)

Opis pliku

Każdy plik powinien być podpisany informacją o autorze oraz wersji

Przykład /*

* class name

*

* file version

*

* author and copyrights

*/

dr Przemysław Juszczuk Programowanie w języku Java

(15)

Łańcuchy

String jako klasa;

metody klasy String;

obsługa łańcuchów bez użycia metod wbudowanych;

funkcja charAt i tablica ASCII;

rzutowanie na byte.

(16)

Rysunek:Metoda main i lista argumentów

dr Przemysław Juszczuk Programowanie w języku Java

(17)

Rysunek:Lista argumentów przekazywana do metody main

(18)

Rysunek:Obiekt klasy String

dr Przemysław Juszczuk Programowanie w języku Java

(19)
(20)

Rysunek:Tablica kodu ASCII

dr Przemysław Juszczuk Programowanie w języku Java

(21)
(22)

Podstawowe metody

int compareTo(String anotherString) - porównanie dwóch łańcuchów : 0 równe. wart. ujemna - string mniejszy od zadanego, np. aaa i aab wart. dodatnia - string większy od zadanego;

boolean endsWith (String suffix) - podajemy łańcuch i sprawdzenie, czy kończy się na wybrany podłańcuch/literę;

int indexOf(String str) - udostępnia miejsce wystąpienia podłańcucha str w łańcuchu;

String replace (char oldChar, char newChar);

String substring (int beginindex) - udostępnia podciąg danego łańcucha od wybranego indeksu do końca.

dr Przemysław Juszczuk Programowanie w języku Java

(23)

Operacje na String

konkatenacja i zastosowanie w metodzie print (println);

wycinanie łańcuchów i metoda substring;

String a tablica typu char;

Pojedynczy znak a String o długości 1.

String w innych językach

String w Javie odpowiada char* zmienna;

Nie traktujemy tego jak tablicy char

(24)

Rysunek:Metoda equals

dr Przemysław Juszczuk Programowanie w języku Java

(25)

Komentarze

Większość języków programowania umożliwia stosowanie tzw.

komentarzy blokowych oraz komentarzy jednoliniowych.

komentarze jednoliniowe stosowane są do opisu zmiennych;

komentarze blokowe stosowane są do opisu klas, funkcji, metod klas itp.;

opis zmiennej/funkcji powinien być krótki i przejrzysty;

z opisu powinno jasno wynikać zastosowanie danej zmiennej.

Dobrze

int x; \\ instrukcja sterująca pętli

double y; \\ zmienna przechowująca wynik OdczytPlik()

Źle

(26)

Komentarze blokowe

komentarze blokowe powinny opisywać zastosowanie danej funkcji;

w komentarzach często umieszcza się też listę parametrów i ich opis;

nazwa funkcji/klasy powinna mieć charakter informacyjny;

Dobrze /*

Funkcja otwiera plik podany jako parametr.

Następnie odczytuje liczbę z pliku i udostępnia jako wynik

*/

public double OdczytPlik(String sciezka) { kod }

Źle

public double Funkcja1(String s) { kod }

dr Przemysław Juszczuk Programowanie w języku Java

(27)

Notacja węgierska

jeden ze sposobów zapisu nazw zmiennych oraz obiektów;

każda nazwa poprzedzona jest małą literą oznaczającą typ zmiennej/obiektu;

jedną z wad tego zapisu jest konieczność zmiany nazwy zmiennej w przypadku zmiany jej typu. Np. int iLiczba na double dLiczba - zamiana w całym programie.

notacja węgierska może zostać również wykorzystana do określenia zasięgu zmiennych, np. giWynik - zmienna globalna typu int.

Przykłady

String sSciezka;

byte byWynik;

boolean bFlaga;

pointer pWskaznik;

(28)

Notacja wielbłąda

alternatywa dla notacji węgierskiej;

każdy wyraz w nazwie zmiennej z dużej litery (za wyjątkiem pierwszego);

nazwy funkcji zaczynane małą literą;

nazwy klas pisane wielką literą;

możliwe jest łączenie notacji wielbłąda i węgierskiej.

Przykłady

string sciezkaDoPliku;

int wynikMnozenia;

public function ustawWartoscX();

class Tablica ;

dr Przemysław Juszczuk Programowanie w języku Java

(29)

Czytelność kodu

nadmierna kompresja kodu nie jest wskazana;

przeważnie lepiej rozbić istniejący kod na kilka linii - zwiększa to znacząco czytelność programu;

dla wyników pośrednich dobrze jest wykorzystywać dodatkowe zmienne.

Dobrze

double wynikKoncowy;

double wynikFunkcja2;

double wynikPosredni;

wynikFunkcja2 = Funkcja2();

wynikPosredni = wynikFunkcja2()/2 + 5.5 wynikKoncowy = Funkcja1() + wynikPosredni;

Źle

(30)

Deklaracje zmiennych

deklaracja jednej zmiennej w jednej linii;

zmienne lokalne nie powinny zasięgiem przykrywać zmiennych globalnych;

deklaracje tylko na początku funkcji/klas;

o ile to możliwe, wartości początkowe zmiennych powinny być ustalone;

deklaracja zmiennych w ciele funkcji możliwa w przypadku pętli.

Dobrze

String sciezkaDoPliku; // plik z danymi do wczytania;

double sredniaTablicaA = 0.0; // średnia z tablicy A;

double maksimumTablicaA = 0.0;// wartosc maks. z tablicy A;

Źle

double sr, max;

String s;

dr Przemysław Juszczuk Programowanie w języku Java

(31)

Nawiasy klamrowe

W wyrażeniach warunkowych i pętlach zawsze należy wstawiać nawiasy klamrowe. Przy jednej instrukcji jest to opcjonalne, jednak przy rozszerzeniu kodu często prowadzi do trudnych do wykrycia błędów.

Dobrze

void Metoda() { if (warunek) {

Funkcja1();

} }

Źle

void Metoda() { if (warunek)

(32)

Powrót z funkcji

Szczególnie istotne, gdy funkcja udostępnia wartość typu boolean.

Powrót z funkcji powinien znajdować się tylko i wyłącznie w jednym miejscu. W tej sytuacji wskazane jest użycie dodatkowej zmiennej i powrót z funkcji z wykorzystaniem wspomnianej zmiennej.

Dobrze

boolean Sprawdz(int wartosc) { bool flaga;

if (wartosc < 10) {

flaga = true;

} else {

flaga = false;

}

return flaga; }

dr Przemysław Juszczuk Programowanie w języku Java

(33)

Dziękuję za uwagę.

Cytaty

Powiązane dokumenty

CREATE TABLE table_name ( column1 datatype not null, column2 datatype,. column3 datatype,

Programowanie Obiektowe (Wykład) Małgorzata Janik (WF PW) 49/98. Odwołanie do Nadklasy

public void actionPerformed(ActionEvent arg0) {  setTitle(&#34;Anonimowa klasa wewnetrzna&#34;);  . } }

protected void done() - wywoływana po zakończeniu zadania, wykonywana w EDT, można w niej przeprowadzić „sprzątanie” i zaprezentować w GUI główny rezultat wykonywanego

Użytkownik podaje dowolne liczby typu double a następnie liczbę całkowitą z przedziału &lt; 1 : 4 &gt;... Podaj dowolną liczbę, a następnie sprawdź, czy jest ona większa

public static void main (String[] args) {} ¡– główna metoda;. import

Rysunek: Import bibliotek i klasa Random... Rysunek: Import wielu

Przykład z wątkami i JSON Excel i obsługa plików xls Generowanie i odczyt plików pdf. Generowanie skryptów do aplikacji zewnętrznych Zagadnienia