Zaawansowane programowanie obiektowe. Wykład 1 JAVA
|
|
- Teodor Janicki
- 9 lat temu
- Przeglądów:
Transkrypt
1 Zaawansowane programowanie obiektowe Wykład 1 JAVA
2 Język java Rok 1990, Bill Joy: utworzenie obiektowego środowiska w oparciu o C++ Język OAK (Object Application Kernel), 1991 Projekt Green, James Gosling, Patrick Naughton, Mike Sheridan
3 Środowisko Java Obiektowy język java (podobieństwo do C++); Nazwa pliku źródłowego nazwa.java (nazwa to nazwa klasy publicznej -zdefiniowanej w pliku); Kompilator: *.java kod B: *.class; Maszyna wirtualna (JVM); Tworzenie kodu wykonywalnego w locie Just-In-Time Biblioteka Javy.
4 Usytuowanie systemu Java
5 Przetwarzanie programów uŝytkownika
6 Cechy języka Java automatyczne odśmiecanie (garbage collection) nie dopuszcza arytmetyki wskaźnikowej ścisła kontrola typów (konwersje) obsługa wyjątków wbudowane elementy współbieŝności
7 Przykład Programem w języku Java jest aplikacja (application) lub aplet (applet). Aplikacja jest programem samodzielnym, zaś aplet jest programem wbudowanym (np. w przeglądarkę WWW). KaŜda aplikacja musi zawierać dokładnie jeden moduł źródłowy nazywany modułem głównym aplikacji, którego klasa zawiera publiczną funkcję klasy
8 Przykład public class Hello { public static void main(string args[]) { System.out.print("Hello, World!\n"); //end main // end Hello
9 Kompilacja javac Hello.java B-kod: Hello.class Interpretator: java Hello
10 Jak działa interpretator? wyszuka plik o nazwie Hello.class, czy klasa Hello zawiera publiczną metodę statyczną main wykona instrukcje zawarte w bloku main. W języku Java kaŝda instrukcja kończy się średnikiem, który pełni rolę symbolu terminalnego.
11 Jak działa interpretator? do metody main jako parametr jest przekazywana (z wiersza rozkazowego) tablica obiektów (łańcuchów) klasy String; metoda main nie zwraca wyniku (typem zwracanym jest void); Ciało main zawiera jedną instrukcję; System.out.print("Hello, World!\n");
12 Jak działa interpretator? Słowo System jest nazwą klasy w standardowym środowisku języka. Klasa System zawiera statyczny obiekt składowy typu PrintStream o nazwie out wywołanie System.out oznacza pisanie do standardowego strumienia wyjściowego.
13 Klasa PrintStream zawiera szereg przeciąŝeń metody o nazwie print (tu:parametr typu String). Kompilator automatycznie konwertuje "Hello, World\n" obiekt klasy String; odnośnik (referencja) do tego obiektu jest przekazywana do metody System.out.print(). Metoda print() generuje jeden wiersz wyjściowy i powraca do metody main, która kończy wykonanie.
14 !!! w języku Java wszystkie stałe, zmienne i funkcje są elementami składowymi klas; nie ma wielkości globalnych, definiowanych poza klasą. nie deklaruje się metod (funkcji) składowych jako rozwijalnych (inline) bądź nie decyzja naleŝy do kompilatora.
15 package moje.aplikacje; import javax.swing.*; import java.awt.container; Określenie nazwy pakietu, do którego naleŝą klasy zdefiniowane w tym pliku. MoŜna opuścić. Zewnętrzne pakiety (ew. pojedyncze klasy lub interfejsy), z których korzystamy w naszym programie. MoŜna uwaŝać ten element jako odpowiednik dyrektywy #include w C/C++. class PierwszyGUI extends JFrame { public PierwszyGUI () {... Definicje klas (klasy mogą dziedziczyć, jak w tym przykładzie). Definicja konstruktora. class KlasaStartowa Inna klasa. Posiada składniki, które mogą być inicjalizowane. { PierwszyGUI ob1; PierwszyGUI ob2 = new PierwszyGUI (); public static void main (String[] args) {... Metoda main klasy startowej. To od niej rozpoczyna się wykonywanie aplikacji. Musi być to metoda public static!
16 Aplikacja graficzna import javax.swing.*; class GUI extends JFrame { public static void main (String[] args) { GUI gui = new GUI (); gui.setsize (300, 200); gui.show (); Klasa z metodą main dziedzicząca z klasy JFrame (opisującej okienko graficzne), która pochodzi z pakietu javax.swing. Korzysta z najprostszych odziedziczonych metod.
17 Struktura programu package... // deklaracja pakietu (niekonieczna) import... // deklaracje importu; zwykle, a1e nie zawsze potrzebne import... /** Komentarz dokumentacyjny zaczyna się ukośnikiem z dwoma gwiazdkami, kończy gwiazdką i ukośnikiem */ // To jest klasa A <- to jest komentarz public class A {... /* To jest komentarz wielowierszowy */ // To jest klasa B class B {...
18 Struktura programu - uwagi Program moŝe być zapisany w jednym lub wielu plikach źródłowych (.java); wszystkie klasy składające się na program moŝna umieścić w jednym pliku albo kaŝdą klasę moŝna umieścić w odrębnym pliku; w jednym pliku.java moŝe się znajdować tylko jedna klasa publiczna; jeśli w pliku.java znajduje się klasa publiczna, to plik musi mieć dokładnie taka samą nazwę, jak ta klasa.
19 Struktura programu -Aplikacja: jedna z klas musi zawierać metodę public static void main(string[] args), Przykład: a.klasa Work i klasa Inna zdefiniowane w pliku Work.java b.po kompilacji dwa pliki: Work.class, Inna.class. c.wywołujemy: java Work [argumenty]
20 Klasy (przypomnienie) class nazwy klasy { Ciało klasy Przed słowem kluczowym class moŝe wystąpić jeden ze specyfikatorów: abstract, public, final, lub dwa z nich: np. public abstract, public final.
21 Abstract: klasa abstrakcyjna nie moŝe wystąpić; final: klasa nie moŝe mieć podklas; Brak specyfikatora: klasa dostępna tylko dla tego pakietu;
22 Po nazwie klasy mogą wystąpić frazy: a) extends nazwa_superklasy b) implements nazwy_interfejsów. a) klasa dziedziczy publicznie (zawsze) od klasy superklasa. b) w danej klasie zostaną zdefiniowane metody, zadeklarowane w implementowanych interfejsach.
23 W języku Java kaŝda klasa dziedziczy od predefiniowanej klasy Object. Zatem, jeŝeli w definicji klasy nie występuje fraza extends, to jest to równowaŝne niejawnemu wystąpieniu w tej definicji frazy extends Object.
24 oprócz słowa kluczowego class i nazwy klasy wszystkie pozostałe elementy w deklaracji klasy są opcjonalne. kompilator przyjmie domyślnie, Ŝe klasa jest niepubliczną, nieabstrakcyjną i niefinalną podklasą predefiniowanej klasy Object.
25 Przykład public class Point { int x, y; równowaŝne public class Point { int x, y; public Point() { super();
26 przykład class Point {int x,y; Point() {x=1; y=2; class CPoint extends Point {public int color = 0xFF00FF; public class Super1 { public static void main(string args[]){ CPoint cp=new CPoint(); System.out.println("cp.color="+cp.color); System.out.println("cp.x="+cp.x); //end main //end Super1
27
28 Interfejs interface nazwa { /* Deklaracje metod i definicje stałych */
29 Interfejsy Interfejs klasy jest to jakby uboŝsza wersja klasy, oznacza zestaw metod i zastępuje wielodziedziczenie. Klasa moŝe mieć kilka interfejsów Interfejs (deklarowany za pomocą słowa kluczowego interface) to: zestaw publicznych abstrakcyjnych metod, (domyślnie nie trzeba pisać abstract) oraz ewentualnie statycznych stałych, (domyślnie nie trzeba pisać final static) Implementacja interfejsu w klasie to zdefiniowanie w tej klasie wszystkich! metod interfejsu.
30 Interfejsy interface Speakable { int QUIET = 0; int LOUD = 1; String getvoice(int voice); interface Moveable { void startmoving(); void stopmoving(); class Pies extends Zwierz implements Speakable, Moveable { Pies () { Pies(String s) { super(s); String gettyp(){ return "Pies"; public String getvoice(int voice) { if (voice == LOUD) return "HAU... HAU... HAU... "; else return "hau... hau..."; public void startmoving() { System.out.println("Pies " + name +"biegnie"); public void stopmoving() { System.out.println("Pies " + name +"stanął");
31 Interfejsy Pies kuba = new Pies("Kuba"); kuba.startmoving(); System.out.println(kuba.getVoice(Speakable.LOUD)); kuba.stopmoving(); void Wyscig(Moveable[] objects) { for (int i =0; i < objects.length; i++) objects[i].startmoving(); Wyscig( new Moveable[] { new Pies(), new Samochod(), new Kot(), new Rower() );
32 Pakiety Przykład 1: package moj_pakiet; Przykład 2: Java.awt.Button b = new Java.awt.Button("0k"); Przykład 3: import java.awt.button; // importuje nazwę klasy Java.awt.Button class A { java.awt.frame f = new java.awt.frame("tytuł"); Button b = new Button("Ok"); Przykład 4: import java.awt.*; // importuje wszystkie nazwy klas pakietu java.awt class A { Frame f = new Frame("Tytuł");// teraz moŝemy uŝyć teŝ prostej nazwy klasy Button b = new Button("0k");// teraz moŝemy uŝyć teŝ prostej nazwy klasy Pakiet java.lang nie wymaga importu (m.in. zawiera klasy String i System).
33 Definiowanie klas Dane są reprezentowane przez pola klasy Operacje wprowadzamy poprzez definicje metod klasy. Zestaw metod klasy nazywany jest jej interfejsem. W Javie argumenty przekazywane są metodom wyłącznie przez wartość. void incr(int x) { ++x; void przestawpary(para pl, Para p2) { Para temp = pl; pl = p2; p2 = temp; Konstruktory moŝna przeciąŝać, istnieje konstruktor domyślny dopóki nie zdefiniujemy własnego class Para { int a, b; Para(int x, int y) { a = x; b = y; class Para { int a, b; Para(int x) { a = x; b = x;
34 Komunikacja z obiektami Przykład 1: TypObiektu identyfikator = new NazwaKlasy(argumenty); Przykład 2: TypObiektu identyfikator; identyfikator = new NazwaKlasy(argumenty); Para x = new Para(1,3); // Tworzy obiekt klasy Para // za pomocą konstruktora Para(int, int) Przykład 3: Para pl = new Para(l,2); // utworzenie nowego obiektu typu Para, pl - referencja do niego Para p2 = new Para(3,4); // utworzenie nowego obiektu typu Para, p2 - referencja do niego Przykład 4: void add(para p) { a = a + p.a ; b = b + p.b;
35 Słowo kluczowe this SYTUACJA 1 class Para { int a; int b; void add(int a, int b){ this.a + = a ; this.b + = b; SYTUACJA 2 Para add(para p) { a = a + p.a; b = b + p. b; return this; p.add(p1).add(p2).add( p3); co jest inną formą zapisu: p.add(p1); p.add(p2); p.add(p3); SYTUACJA 3: patrz wywołanie konstruktora z innego konstruktora
36 Składowe statyczne Uwaga: Ze statycznych metod nie wolno odwoływać się do niestatycznych składowych klasy (obiekt moŝe nie istnieć). MoŜliwe są natomiast odwołania do innych statycznych składowych. Przykład: statyczne pole i metoda class Para{ static int count = 0; Para(int x, int y) { count++; a = x; b = y; static void showcount() { System.out.println ("Liczba utworzonych par: "+count); Para p1 = null,p2 = null; if (Para.count == 0) Para p1 = new Para(1,1); else while (Para.count < 10) { p2 = new Para(2,2); p1.add(p2); System.out.println(p1.count); Para.showCount(); p1.showcount(); p2.showcount();
37 Słowo kluczowe final Thinking in Java, Bruce Eckel
38 coś co nie moŝe być zmienione Zmienne (prymitywne, obiektowe) Metody Klasy
39 Zmienne finalne Określenie, Ŝe zmienna ma być stała Stałe czasu kompilacji nigdy nie zmieniane (wartości znane juŝ w trakcie kompilacji) Stałe, którym nadaje wartość tylko raz inicjowane w czasie działania (konstruktor)
40 Pole statyczne i finalne Zajmuje tylko jeden określony fragment pamięci i nie moŝe ulec zmianie static final int A=5; static final int a= rand.nextint(20);
41 Finalne obiekty Stała jest referencja a nie obiekt, do którego się odwołuje MoŜna zmienić zawartość obiektu, ale referencja nie moŝe pokazywać na inny obiekt
42 class Value { int i = 1; public class FinalData { //stale czasu kompilacji: final int i1 = 9; static final int VAL_TWO = 99; public static final int VAL_THREE = 39; // Typowa stała publiczna final int i4 = (int)(math.random()*20); static final int i5 = (int)(math.random()*20); Value v1 = new Value(); final Value v2 = new Value(); static final Value v3 = new Value(); final int[] a = { 1, 2, 3, 4, 5, 6 ; public void print(string id) { System.out.println( id + ": " + "i4 = " + i4 + ", i5 = " + i5);
43 public static void main(string[] args) { FinalData fd1 = new FinalData(); //! fd1.i1++; // Błąd: nie moŝna zmienić wartości fd1.v2.i++; // Obiekt nie jest stały! fd1.v1 = new Value(); // OK -- nie ostateczny for(int i = 0; i < fd1.a.length; i++) fd1.a[i]++; // Obiekt nie jest stały! //! fd1.v2 = new Value(); // Bład: Nie moŝna //! fd1.v3 = new Value(); // zamienić referencji //! fd1.a = new int[3]; fd1.print("fd1"); System.out.println("Tworzenie nowego obiektu FinalData"); FinalData fd2 = new FinalData(); fd1.print("fd1"); fd2.print("fd2");
44 Puste zmienne finalne Java pozwala na tworzenie pustych zmiennych finalnych będących polami zadeklarowanymi z modyfikatorem final, ale nie zainicjowanych Inicjalizacja przed ich uŝyciem!!! w konstruktorze private final Poppet p;
45 class Poppet { private int i; Poppet (int ii) {i=ii; public class BlankFinal { final int i = 0; // Zainicjowana zmienna ostateczne final int j; // Pusta zmienna ostateczna final Poppet p; // Puste odwołanie ostateczna BlankFinal() { j = 1; // Inicjalizacja zmiennej ostatecznej p = new Poppet(); BlankFinal(int x) { j = x; // Inicjalizacja zmiennej ostatecznej p = new Poppet(); public static void main(string[] args) { BlankFinal bf = new BlankFinal(); ///:~
46 Finalne argumenty metody Wewnątrz metody nie moŝna zmieniać wartości; public class FinalArguments { void with(final Gizmo g) { //! g = new Gizmo(); // Niepoprawne -- g jest ostateczna void without(gizmo g) { g = new Gizmo(); // OK -- g nie jest ostateczna g.spin();
47 Metody finalne Blokada metody, zabronienie klasom wydziedziczonym zmian (zapobieganie przesłonięciu) Wydajność wywołanie w miejscu inline ominięcie normalnej procedury włączenia kodu kopiowanie rzeczywistego kodu Decydujący rozmiar kodu metody decyzja po stronie kompilatora Javy
48 Final i private brak dostępu do metod prywatnych brak moŝliwości ich przesłonięcia oznacza metodę final Przesłonięcie a stworzenie nowej metody private final void e() { private void e() { public final, private final
49 Klasy finalne class SmallBrain { final class Dinosaur { int i = 7; int j = 1; SmallBrain x = new SmallBrain(); void f() { Nie dziedziczymy z tej klasy //! class Further extends Dinosaur { // błąd: Nie moŝna rozszerzyć ostatecznej klasy 'Dinosaur' public class Jurassic { public static void main(string[] args) { Dinosaur n = new Dinosaur(); n.f(); n.i = 40; n.j++;
50 Interface
51 interfejsy Klasy abstrakcyjne udostępniają interfejs, bez definicji Forma klasy: Nazwa metody Lista argumentów Typy zwracane Zawierają pola: static final (ale nie puste zmienne finalne) Metody : public
52 Przykład wielokrotne dziedziczenie w Javie interface CanFight { void fight(); interface CanSwim { void swim(); interface CanFly { void fly(); class ActionCharacter { public void fight() { class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly { public void swim() { public void fly() { public class Adventure { static void t(canfight x) { x.fight(); static void u(canswim x) { x.swim(); static void v(canfly x) { x.fly(); static void w(actioncharacter x) { x.fight(); public static void main(string[] args) { Hero h = new Hero(); t(h); // Traktuje h jako CanFight u(h); // Traktuje h jako CanSwim v(h); // Traktuje h jako CanFly w(h); // Traktuje h jako ActionCharacter ///:~
53 Dziedziczenie interfejsów interface Monster { void menace(); interface DangerousMonster extends Monster { void destroy(); interface Lethal { void kill(); class DragonZilla implements DangerousMonster { public void menace() { public void destroy() { interface Vampire extends DangerousMonster, Lethal { void drinkblood(); public class HorrorShow { static void u(monster b) { b.menace(); static void v(dangerousmonster d) { d.menace(); d.destroy(); public static void main(string[] args) { DragonZilla if2 = new DragonZilla(); u(if2); v(if2);
54 Interfejsy grupowanie stałych enum Dane są styczne i finalne public interface Months { int JANUARY = 1, FEBRUARY = 2, MARCH = 3, APRIL = 4, MAY = 5, JUNE = 6, JULY = 7, AUGUST = 8, SEPTEMBER = 9, OCTOBER = 10, NOVEMBER = 11, DECEMBER = 12;
55 Typy danych
56 Typy proste Nazwa typu Liczba bajtów przedziały wartości Znaczenie byte l liczby całkowite short int long float 4-3.xE xE+38 liczby rzeczywiste double 8-1.xE xE308 char znaki Unicodu boolean 1 true false wartości logiczne: prawda lub fałsz
57 Deklaracje Deklaracje typów prostych deklaracja jest zarazem definicją - wydziela w pamięci miejsce na przechowanie zmiennej danego typu. Deklaracja zmiennej typu obiektowego jest faktycznie deklaracją (i definicją) referencji do obiektu, nie wydziela natomiast w pamięci miejsca na przechowanie samego obiektu. String s ; s = "ala ma kota"; int a = l; String s = "ala ma kota";
58 Konwersje arytmetyczne byte, short, char float long int double double. int ii; short ss; ss = 1; ii = ss; ss = ii; błąd ss = (short)ii; OK.;
59 Operatory i wyraŝenia Priorytet, Wiązanie 1, prawe 2, lewe 3, lewe Operator! ~ (typ) * / % + - Nazwa Negacja logiczna Bitowe uzupełnienie do l Jednoargumentowy + (liczba dodatnia) Jednoargumentowy - (liczba ujemna) Operator zwiększania Operator zmniejszania Konwersja (rzutowanie) MnoŜenie Dzielenie Reszta z dzielenia Dodawanie Odejmowanie
60 Operatory i wyraŝenia Priorytet, Wiązanie 4, lewe 5, lewe 6, lewe Operator << >> >>> < <= >= > instanceof ==!= Nazwa Przesunięcie bitowe Przesunięcie bitowe w prawo Przesunięcie bitowe w prawo bez znaku Operatory relacyjne Stwierdzenie typu Operatory równości - Nierówności
61 Operatory i wyraŝenia Priorytet, Wiązanie Operator Nazwa 7, 8. 9, 10, 11, 12, prawe 13, prawe & ^ &&?: %= += &= = <<= Bitowa koniunkcja Bitowe wyłączające ALBO Bitowa alternatywa Logiczna koniunkcja Logiczna alternatywa Operator warunku Operatory przypisania
62 Operatory x = a > b; //x boolean!!! x = a > b && c<d; String s1; String s2 = "Napis"; s1 = s2 + " tralala"; s1 = s1 + s2; int k = 1; s1 = k + k + s2; // 2Napis s1 = s2 + k + k; // Napis11 s1 = s2 + (k+k); // Napis2 s1 = k + k; // błąd kompilacji (jeden z argumentów musi być typu String)
63 Operatory Do porównywania obiektów nie naleŝy uŝywać operatorów relacyjnych i równości nierówności! String s2 = "Napis"; String s3 = new String("Napis"); boolean b; b = (s2 == s3); // porównanie referencji: wynik false b = s2.equals(s3); // wynik true.
64 Instrukcje sterujące if (wyr) ins if (wyr) ins1 else ins2 switch (wyr) { case ws1 : ins1.... case wsn:ins3 default : insdef wyraŝenie wyr musi być wyraŝeniem całkowitym. while (wyr) ins; do ins while (wyr); for (wyr1; wyr2; wyr3) ins continue [etykieta]; break [etykieta]; return wyr;
65 Instrukcja break int i = 0; int j = 0; outerloop: // etykieta while (i < 100) { i++; while(true) { j++; if (i + j > 10) break outerloop; // przerwanie pętli oznaczonej etykietą outerloop, a nie bieŝącej
66 Zasięg zmiennych Uwaga: W Javie instrukcje wyraŝeniowe i sterujące moŝna umieszczać wyłącznie w metodach klasy lub w bloku statycznym Zasięg identyfikatora - fragment programu, w którym moŝe być uŝywany. Zasięg składowych klasy w kaŝdym miejscu klasy (miejsce deklaracji nieistotne) Zasięg identyfikatorów definiowanych wewnątrz metody jest lokalny. Zasięg parametrów metody jest lokalny class A { int a; void metoda1(){ int b; void metoda2() { int c; W metodzie metoda1() moŝemy odwoływać się do zmiennej a, zmiennej b oraz metody metoda2(), a w metodzie metoda2() moŝemy odwoływać się do zmiennej a, zmiennej c i metody metoda1.
67 Przesłanianie nazw zmiennych TAK W konstruktorach i metodach moŝemy przesłaniać identyfikatory pól klasy: class A { int a; void metoda(){ int a = 0; // przesłonięcie a = a + 10; // zmienna lokalna; this.a++; // pole klasy NIE W Javie nie wolno przesłaniać zmiennych lokalnych w blokach wewnętrznych: int a; { int a; // BŁĄD kompilacji
68 Czas Ŝycia zmiennych Zmienne lokalne i referencje - od momentu deklaracji do wyjścia sterowania z bloku Obiekty od chwili wykonania operacji new do chwili usunnięcia przez garbage collector class A { String s ; void metoda1() { String pies = new String("Pies"); s = pies; void metoda2(){ System.out.println("Jest " + s); Obiekt pies" został stworzony w metodzie1. Referencja pies po zakończeniu działania tej metody przestaje istnieć. PoniewaŜ jednak referencja s wskazuje na obiekt pies, to obiekt nadal istnieje. MoŜemy się do niego odwołać w metodzie2.
69 Specyfikatory dostępu Dostęp do pól i metod klasy specyfikator dostępu pola/metody Opis prywatny private dostępna tylko w danej klasie zaprzyjaźniony / pakietowy chroniony - (ew package) protected dostępna ze wszystkich klas danego pakietu dostępna z danej klasy i wszystkich klas ją dziedziczących publiczny public dostępna zewsząd
70 Inicjalizacja pól Przy tworzeniu obiektu pola klasy mają zagwarantowaną inicjalizację na wartości ZERO (0, false - dla typu boolean, null - dla typów obiektowych, nie dotyczy to lokalnych zmiennych. PRZYKŁAD JAWNEJ INICJALIZACJI class Para { static String text = "Pary"; static int x = -1; int a = x+1; int b = x+1; Para() { a++; b++; static String gettext() { return text; void show(){ System.out.println("( " + a + "," + b + ")");
71 Kolejność inicjalizacji pól REGUŁY DOTYCZĄCE KOLEJNOŚCI: kaŝde odwołanie do klasy inicjalizuje najpierw pola statyczne tworzenie obiektu (new) inicjalizuje pola niestatyczne, po czym wykonywany jest konstruktor kolejność inicjalizacji pól - według ich kolejności w definicji klasy (w podziale na statyczne i niestatyczne, najpierw statyczne) TAK class Para{ static String text = "Pary"; int a = x+1; int b = x+1; Para() {... Para(int x){... Para(int x, int y) {... static int x = -1; NIE (błąd: forward reference) class Para { static int y = x + 1; int a = x+1; int b = x+1; static int x = - 1;
72 Typ tablicowy Deklaracja tablicy tworzy referencję. Taka deklaracja nie alokuje pamięci dla samej tablicy. int[] arr; // arr jest referencją MoŜna pisać teŝ int arr[]; // arr jest zmienną typu int[], który jest typem obiektowym Alokowanie pamięci. Rozmiar tablicy moŝe być ustalany dynamicznie podczas działania programu arr = new int[l0]; int[] tab = new int[n];
73 Tablice - przykłady Przykład: Przetwarzanie wszystkich elementów tablicy Przykład: Przekroczenie zakresu tablicy kontrolowanie ilości parametrów programu public static void main(string[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); public static void main(string[] args){ try{ System.out.println(args[0] + " " + args[1]); catch(indexoutofboundsexception e){ System.out.println("Syntax:... "); System.exit(1);
74 Tablice - przykłady Tablice elementów obiektowych wymaga inicjalizacji wszystkich obiektów - elementów Button[] tab = new Button[n]; for (int i = 0; 1 < tab.length; i++) tab[i] = new Button("Przycisk " + i); Inicjalizatory klamrowe int a[] ={1, 2, 3, 4, 5, 3; //ale tylko w wierszu deklaracji tablicy Button b[] ={ new Button("A"), new Button("B"), new Button("C"), /* tu przecinek dozwolony*/ ; Tablice - w przypisaniach byte[] b1 = {l, 2, 3 ; byte[] b2 = {l, 2, 3, 5, 5 ; b2 = b1;
75 Tablice - przykłady Tablice jako argumenty metod void chgtab(byte[] t){ for( int i=0; i < t.length; i++) t[i]++; byte[] b1 = {1, 2, 3 ; chgtab(b1); Tablice róŝnych obiektów (takie tablice takŝe jako argument funkcji) Component[] tab=new Component[]{new Button("A"), new Button("B"), new Label("A"), new Label("B"),; for(int i=0;i<tab.length;i++) tab[i].setbackground(color.blue);
76 Tablice wielowymiarowe Przykładowe sposoby deklaracji i inicjalizacji: 1. inicjalizacja w nawiasach klamrowych int[][] macierz1 = {{ l, 2, 3, { 4, 5, 6; 2. dynamicznie int[][] macierz2 = new int[n][m];
77 Tablice wielowymiarowe Przykładowe sposoby deklaracji i inicjalizacji: 3. tablica składa się z wektorów o róŝnych rozmiarach public static void main(string[] arg) { int w[] = { 2, 3, 4 ; int n = 3; int[][] m3 = new int[n][]; // rozmiary wierszy będą zm. Dynam. for(int i = 0; i < m3.length; i++){ m3[i] = new int[w[1]]; for (int j = 0; j < m3[i].length; j++) m3[i][j] = i + j; for (int i = 0; i < m3.length; i++) { System.out.println("Rozmiar i-go wiersza " + m3[i].length); String out = " "; for(int j = 0; j < m3[i].length; j++) out += " " + m3[i][j]; System.out.println(out);
78 Tablice kopiowanie int[] a; int[] b = {5, 6, 7, 8, 9; a = b; // WRONG! Kopiowania tylko referencja Correct: a = new int[b.length]; for(int i=0; i < b.length; i++) a[i] = b[i]; Metoda do kopiowania java.lang.system. arraycopy(sourcearray, src_pos, destarray, dest_pos, length); Przykład System.arraycopy(b, 0, a, 0, b.length); MoŜliwe Exceptions : NullPointerException (if sourcearray or destarray null), IndexOutOfBoundsException (e.g. src_pos negative), or ArrayStoreException (element type mismatch). 78
79 Tablice Zwrot tablic przez metody przykład ( [Barteczko 04, vol. 1, p. 191]) int[] dblval(int[] tab) { int[] output_arr = new int[tab.length]; for(int i=0; i<output_arr.length; i++) output_arr[i] = tab[i] * 2; return output_arr; 79
80 Tablice public static void main(string[] arg) { int[] w = { 2, 3, 4 ; int n = 3; int[][] m3 = new int[n][]; // row sizes - dynamic for(int i = 0; i < m3.length; i++){ m3[i] = new int[w[i]]; for (int j = 0; j < m3[i].length; j++) m3[i][j] = i + j; for (int i = 0; i < m3.length; i++) { System.out.println("i-th row size: " + m3[i].length); String out = " "; for(int j = 0; j < m3[i].length; j++) out += " " + m3[i][j]; System.out.println(out); 80
81 Konwersja danych double b = 1 / 3; //? jak w C/C++: dzielenie całkowite, wynik: 0. zastosuj 1.0 / 3.0. A co teraz? int c = 1.0 / 3.0;//error Java musi być pewna, Ŝe chcesz stracić pewną część informacji int c = (int)(1.0 / 3.0);//OK 81
82 Typy konwersji (arithmetic) int2int float2int int i; short sh; sh = 5; // OK; 5 is int but is constant and // is small enough (no information loss) i = sh; // expanding, ok sh = (short)i; // OK with the explicit cast double d = 5.12; i = d; // WRONG! Conversion must be explicit // but: i = (int)d; // OK. The fraction is cut off 82
83 Compiler message: zmniejszenie precyzji found: double required: float Błędny zapis?? float width = 5.5; // error OK float width = (float)5.5; // float width = 5.5F; // or...5.5f 83
84 Łańcuchy znaków String s1 = "abc"; String s2 = "ab"; s2 += "c"; boolean result = (s1==s2); // true? False. RóŜne objekty róŝne referencje. Zawartość nieistotna Jak porównać? if (s1.equals(s2))... lub if (s1.equalsignorecase(s2))... String s1 = "abc"; String s2; s2 = s1; // kopiowanie poprawne? Lepiej: s2 = new String(s1); 84
85 Powiązanie łańcuchów znaków i liczb String s1 = "Johnny has drunk "; int count1 = 2, count2 = 1; String s2 = " beers."; String s3 = s1 + count1 + s2; String s4 = s1 + (count1 + count2) + s2; String s5 = s1 + count1 + count2 + s2; String s6 = count1 + count2 + s2; 85
86 Przeładowanie metod int Fun(int x) int Fun(float y) int Fun(int a, float b) Wszystkie w jednej klasie Error!! int Fun(int x) and boolean Fun(int y) 86
87 PrzeciąŜanie metod void add(para p) { a += p.a; b += p.b; void add(int i) { a += i; b += i; void add(int i, int k){a += i; b += k; p.add(jakaspara) ; p.add(3); p.add(1,2);
88 PrzeciąŜenie konstruktorów Para(int x) { a = x; b = x; // oba pola inicjalizowane tą samą liczbą Para(int x, int y) { // kaŝde pole inicja1izowane inną liczbą a = x; b = y; Para() { this(1); Para(int x) {this(x,x); Para(int x, int y) { a = x; b = y;
89 Dziedziczenie Sekwencja budowania obiektu klasy pochodnej 1. wywoływany jest konstruktor klasy pochodnej 2. jeśli pierwszą instrukcją jest super(args), wykonywany jest konstruktor klasy bazowej z argumentami args, 3. jeśli nie ma super(...), wykonywany jest konstruktor bezparametrowy klasy bazowej, 4. wykonywane są instrukcje wywołanego konstruktora klasy pochodnej. Uwaga: Java nie uwzględnia wielodziedziczenia Podstawowe róŝnice między kompozycją a dziedziczeniem: dziedziczenie pozwala wykorzystywać istniejący interfejs na rzecz obiektu klasy pochodnej, kompozycja - nie, dziedziczenie oznacza, Ŝe obiekt klasy pochodnej moŝe być traktowany tak samo jak obiekt typu definiowanego przez nadklasę.
90 Obiektowe konwersje rozszerzające KaŜdy obiekt moŝemy przekształcić w obiekt jego (dowolnej) nadklasy. Nazywa się to konwersją rozszerzającą albo upcasting, (up - bo w górę hierarchii dziedziczenia). Obiektowe konwersje rozszerzające dokonywane są automatycznie (nie musimy stosować operatora konwersji) przy: przypisywaniu zmiennej-referencji odniesienia do obiektu klasy pochodnej, przekazywaniu argumentów, gdy parametr jest typu nadklasy argumentu, zwrocie wyniku, gdy wynik podstawiamy na zmienną oznaczającą obiekt nadklasy zwracanego wyniku.
91 Obiektowe konwersje rozszerzające static Para sum(para pl, Para p2, Para p3) { Para p = new Para(0,0); p.add(pl); p.add(p2); p.add(p3); return p; Para p1 = new Para(1,2); ParaInh pi1 = new ParaInh(3,4), pi2 = new ParaInh(5,6); Para wynik = sum(pp1, pi1, pi2);
92 Zastosowanie polimorfizmu class Zwierz { String name = "nieznany"; Zwierz() { Zwierz(String s) {name = s; String gettyp() {return "Jakiś zwierz"; String getname() {return name; String getvoice(){return "?"; void speak() { System.out.println( gettyp()+" "+getname()+" mówi " +getvoice()); class Pies extends Zwierz { Pies(){ Pies(String s) { super(s); String gettyp() { return "Pies"; String getvoice() { return "HAU, HAU!"; class Kot extends Zwierz { Kot() { Kot(String s) { super(s); String gettyp() { return "Kot"; String getvoice() { return "Miauuuu...";
93 Zastosowanie polimorfizmu class Main { public static void main(string[] arg) { Zwierz z1 = new Zwierz(), z2 = new Zwierz(); Pies pies = new Pies(), kuba = new Pies("Kuba"); Pies reksio = new Pies("Reksio"); Kot kot = new Kot(); Dialog(z1, z2); Dialog(kuba, reksio); Dialog(kuba, kot); Dialog(reksio, pies); static void Dialog(Zwierz z1, Zwierz z2){ z1.speak(); z2.speak(); System.out.println(" "); Wynikiem działania programu będzie następujący wydruk Jakiś zwierz nieznany mówi? Jakiś zwierz nieznany mówi? Pies Kuba mówi HAU, HAU! Pies Reksio mówi HAU, HAU! Pies Kuba mówi HAU, HAU! Kot nieznany mówi Miauuuu... Pies Reksio mówi HAU, HAU! Pies nieznany mówi HAU, HAU!
94 Metody wirtualne za wyjątkiem: metod statycznych, Wszystkie metody w Javie są wirtualne metod deklarowanych ze specyfikatorem final, metod prywatnych (dla których odwołania w innych metodach danej klasy nie są polimorficzne). Dynamic binding (Late binding) mechanizm pozwalający wykryć na jaki obiekt wskazuje referencja i zastosować odpowiednią metodę.
95 Metody i klasy abstrakcyjne Metoda abstrakcyjna nie ma implementacji (ciała) i winna być zadeklarowana ze specyfikatorem abstract. Klasa, w której zadeklarowano jakąkolwiek metodę abstrakcyjną jest klasą abstrakcyjną i musi być opatrzona kwalifikatorem abstract. abstract class SomeClass { int n; abstract int getsomething(); void say() { System.out.println("Coś tam"); Abstrakcyjność klasy oznacza, iŝ nie moŝna bezpośrednio, np. w wyraŝeniu new tworzyć jej egzemplarzy.
96 Standardowe klasy Javy java.applet, java.awt, java.beans, java.io, java.lang, java.math, java.net, java.rmi, java.security, java.sql, java.text, java.util, javax.accessibility, javax.swing, org.omg.
97 Pakiety java.util.date data = new java.util.date(); import java.util.*;
98 java.lang W pakiecie java.lang zdefiniowana jest klasa Object, która jest klasą nadrzędną wobec wszystkich innych klas Javy. Boolean, Byte, Integer, Long, Double, Character itd., Klasa Math Klasa Thread
99 java.lang 2 klasy obsługujące łańcuchy znaków: String i StringBuffer. Klasa String uŝywana jest do przechowywania i wykonywania operacji na stałych łańcuchach; po utworzeniu obiektu tej klasy nie moŝna zmienić jego wartości. Klasa ta zawiera metody: do sprawdzania poszczególnych znaków, porównywania łańcuchów, wyodrębniania podłańcuchów, tworzenia kopii z zamianą na małe albo duŝe litery. Klasa StringBuffer implementuje łańcuchy znaków, które mogą być zmieniane. Podstawowe metody tej klasy to append dodająca znaki na końcu bufora i insert wstawiająca znaki w określonym miejscu. KaŜdy obiekt przydziela bufor na przechowywany łańcuch znaków. JeŜeli całkowita długość łańcucha wzrośnie powyŝej rozmiaru bufora, automatycznie przydzielany jest większy.
100 Pakiet java.io definiuje klasy implementujące operacje wejściawyjścia. Reader wraz z podklasami: BufferedReader, CharArrayReader, InputStreamReader, FileReader, StringReader Writer wraz z podklasami: BufferedWriter, CharArrayWriter, OutputStreamWriter, FileWriter, PrintWriter,
101 import java.io.*; import java.util.*; public class czytam { public static void main (String args[]){ EasyIn easy = new EasyIn(); System.out.print("enter float: "); System.out.flush(); System.out.println("You entered: " + easy.readfloat() ); float a=easy.readfloat(); System.out.println("You entered: " + a); class EasyIn { static InputStreamReader is = new InputStreamReader( System.in ); static BufferedReader br = new BufferedReader( is ); StringTokenizer st; StringTokenizer gettoken() throws IOException { String s = br.readline(); return new StringTokenizer(s); float readfloat() { try { st = gettoken(); return new Float(st.nextToken()).floatValue(); catch (IOException ioe) { System.err.println("IO Exception in EasyIn.readFloat"); return 0.0F;
102 pakiet java.util szereg klas definiujących róŝne struktury danych przechowujące inne obiekty. Klasa Vector implementuje tablicę obiektów, która moŝe rosnąć lub zmniejszać się w miarę jak obiekty są dodawane lub usuwane. Wszystkie elementy wektora najwygodniej jest przeglądać wykorzystując interfejs Enumeration
103 Gdy wektor zajmuje całą przydzieloną pamięć, przed dodaniem kolejnego elementu jego rozmiar jest automatycznie zwiększany o wartość capacityincrement. Program moŝe jednak sam zwiększyć rozmiar wektora przed wstawieniem duŝej porcji danych, aby uniknąć wielu realokacji. Podklasą klasy Vector jest Stack realizujący kolejkę LIFO obiektów z metodami push i pop.
104 java.util.zip W pakiecie java.util.zip znajdują się klasy pozwalające tworzyć i czytać pliki skompresowane w formatach ZIP i GZIP.
105 Pakiet java.net Pakiet java.net zawiera klasy realizujące połączenia sieciowe zarówno na poziomie gniazd, jak i adresów URL wskazujących zasoby w WWW. Podstawowe klasy to: Socket, URL, URLConection. Pakiet java.sql Jednolity standard dostępu do dowolnych relacyjnych baz danych. Klasy z tego pakietu implementują połączenia z bazą danych, zapytania SQL, wyniki tych zapytań itp. Driver JDBC (Java DataBase Conectivity)
106 java.rmi RMI (Remote Method Invocation) zawarty w java.rmi umoŝliwia tworzenie rozproszonych aplikacji w Javie. RMI zapewnia mechanizm, poprzez który odbywa się komunikacja pomiędzy serwerem i klientem oraz przesyłane są dane w obie strony. org.omg Wspiera powszechnie przyjęty standard modelu rozproszonych obiektów CORBA (Common Object Request Brokerage Architecture). Pozwala on na komunikację pomiędzy obiektami bez względu na platformę systemu operacyjnego, ani uŝyty języka programowania.
107 pakiet java.awt Aplety i aplikacje Javy komunikują się z uŝytkownikiem wykorzystując klasy z pakietu java.awt składające się na graficzny interfejs uŝytkownika AWT (Abstract Window Toolkit). AWT dostarcza typowe komponenty graficzne takie, jak klawisze, pola do wprowadzania tekstu, listy wyboru itd. poprzez klasy: Button, Checkbox, Choice, Label, List, Menu, Scrollbar, TextArea, TextField będące pochodnymi klasy Component. Wykorzystując klasę Canvas, moŝna rysować dowolne obrazy graficzne na ekranie; Po dodaniu odpowiedniej obsługi zdarzeń moŝna zdefiniować dowolny własny komponent.
108 Wyjątki pozwalają zachować kontrolę nad przebiegiem wykonania funkcji (metod), a takŝe pojedynczych instrukcji zawartych w funkcjach. Wyjątek jest zdarzeniem, które pojawia się podczas wykonania i rozrywa normalną kolejność wykonania instrukcji. Wyjątki W języku Java istnieje bardzo rozbudowana hierarchia (drzewo) predefiniowanych klas wyjątków, których superklasą jest klasa Throwable, a głównymi gałęziami drzewa są klasy Error i Exception. - Wyjątki weryfikowalne - Wyjątki nieweryfikowalne
109 Wyjątki - throw Dla obsługi wyjątków weryfikowalnych wprowadzono cztery słowa kluczowe: throw, throws, try, catch i finally. Słowo kluczowe throw słuŝy do jawnego zgłaszania wyjątków nieweryfikowalnych i występuje w instrukcji throw (throw wyraŝenie; typu referencyjnego do klasy Throwable lub jej podklas). Zgłoszenie wyjątku w instrukcji throw spowoduje natychmiastowe opuszczenie bloku zawierającego instrukcję throw i znalezienie instrukcji try, której fraza catch przechwyci zgłoszony wyjątek. JeŜeli nie ma takiej instrukcji try, zostanie wywołana metoda UncaughtException i wykonanie programu (lub wątku) zostanie zakończone.
110 Fraza: throwsklasa_wyjątków public staic void main(string args[]) throws Exception {/*...*/ void printnumber(int number) throws WrongNumberException {/*...*/
111 try catch JeŜeli wykonanie pewnej instrukcji programu moŝe spowodować powstanie wyjątkowego zdarzenia, to musi ona być ujęta w blok instrukcji try, po którym muszą wystąpić procedury obsługi wyjątku mające postać frazy catch i bezpośrednio po catch (opcjonalnie) frazy finally. try {I catch(arg1 e1) {I catch(arg2 e2) {I... catch(argn en) {I... finally {I Sterowanie przekazywane jest do pierwszej w kolejności klauzuli catch, której argument" (typ wyjątku) pasuje do typu powstałego wyjątku najpierw podawać BARDZIEJ SZCZEGÓŁOWE TYPY WYJĄTKÓW!!!
112 Klauzula finally Był wyjątek? NIE wykonaj klauzulę finally Przejdź do następnej linii programu TAK przerwij try uruchom jest klauzulę catch. wykonaj klauzulę finally boolean metoda(...) { try { /*instrukcje,które mogą spowodować wyjątek*/ catch(exception e) { return false; finally { /* uporządkowanie, np. zamknięcie pliku*/ return true;
113 Schemat obsługi wyjątków int a, b, c; String s; try { // wyjątek ArithmeticException s = Integer.toString(a); catch(arithmeticexception ex) { // wyjątek jest obsługiwany w bloku catch s = "*" ;
114 Własne wyjątki Wyjątki są obiektami klas pochodnych od Throwable. Aby stworzyć własny wyjątek, naleŝy zdefiniować odpowiednią klasę. Zgodnie z konwencją dziedziczymy podklasę Throwable - klasę Exception. class NaszWyj extends Exception { void naszametoda() throws NaszWyj {..... if(błąd) throw new NaszWyj(ew_param_konstruktora_z_info_o_błędzie);
115
Programowanie obiektowe
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Programowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Dokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy
PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Programowanie obiektowe
Programowanie obiektowe Wykład 6: Klasy abstrakcyjne. Interfejsy. 4/7/2013 S.Deniziak: Programowanie obiektowe - Java 1 Klasy ostateczne class Ogon { final class Dinozaur { int i = 7; int j = 1; Ogon x
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Multimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Programowanie w środowiskach graficznych. Wykład 2.
Programowanie w środowiskach graficznych Wykład 2. 1 PLAN Interfejsy Wątki Tablice Pakiety 2 super, this class Parent { private int i = 10; void fp() { System.out.print("fp of Parent class\n"+"i= "+i);
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Wykład 2: Podstawy Języka
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
Podstawowe części projektu w Javie
Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Platformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Wykład 7: Pakiety i Interfejsy
Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,
Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)
MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System
Definiowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java
Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment
Tablice i łańcuchy znakowe jako obiektowe typy danych. dr Jarosław Skaruz
Tablice i łańcuchy znakowe jako obiektowe typy danych dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? Klasy String, StringBuffer, StringBuilder Tablice jednowymiarowe
Programowanie w Javie - wykład 2
Programowanie w Javie - wykład 2 Java-wprowadzenie (instrukcje sterujące) Klasy podstawy Pakiety Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN,
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Programowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Polimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);
1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania
Wykład 8: Obsługa Wyjątków
Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Programowanie w Javie - wykład 3
Pakiety import Klasy dziedziczenie Programowanie w Javie - wykład 3 Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Dziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Programowania w Javie
Programowania w Javie Działanie kaŝdego programu polega na przetwarzaniu danych. Zaczniemy więc od zapoznania się z typami danych Javy. Aby przetwarzać dane, trzeba umieć na nich operować. Do tego słuŝą
Programowanie w Javie - wykład 4
Klasy dziedziczenie Programowanie w Javie - wykład 4 Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Dziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
JAVA- wykład 2 Klasy
JAVA- wykład 2 Klasy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ C. S. Horstmann, G. Cornell,
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.
Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Java Język programowania
Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Programowanie w Javie wykład 8 Interfejsy
1 Programowanie w Javie wykład 8 Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki programowania,
Enkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Dziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:
Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected
Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Języki i metody programowania Java INF302W Wykład 3 (część 1)
Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,
Dawid Gierszewski Adam Hanasko
Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{
JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak
JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje
Definiowanie własnych klas
Abstrakcja Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Świat rzeczywisty jest bardzo złoŝony i nie jest moŝliwe
Aplikacje w Javie wykład 5 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Interfejsy
Aplikacje w Javie wykład 5 1 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne
Języki i metody programowania Java INF302W Wykład 2 (część 1)
Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja
MATERIAŁY DO ZAJĘĆ II
MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Wprowadzenie do języka Java
WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.
Języki Programowania II Wykład 3. Java podstawy. Przypomnienie
Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania
Interfejsy i klasy wewnętrzne
Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw
Programowanie w środowisku graficznym- wykład 2 Java - Klasy
Programowanie w środowisku graficznym- wykład 2 Java - Klasy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń
Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne
1 Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Tworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
KLASY, INTERFEJSY, ITP
KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Podstawy obsługi wyjątków
1 Obsługa wyjątków Podstawy obsługi wyjątków Problem, który wstrzymuje wykonanie metody lub bloku; Przykład dzielenie 7/0, co oznacza wartość 0 w mianowniku?? Tworzony jest nowy obiekt wyjątku new ŚcieŜka
Definicje klas i obiektów. Tomasz Borzyszkowski
Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy
Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne
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
Programowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo
Wykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
Tablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1
PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,
Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Kompozycja i dziedziczenie klas
Związki między klasami: jest i zawiera Programowanie obiektowe Przkład: Pojazd Kompozycja i dziedziczenie klas Silnik Pojazd silnikowy Rower Wóz konny Paweł Rogaliński Instytut Informatyki, Automatyki
Microsoft IT Academy kurs programowania
Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Podstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
2. Składnia, środowisko i konwencje w Javie
Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale