Fenomen Ruby'ego. Marek Kirejczyk
|
|
- Katarzyna Witkowska
- 7 lat temu
- Przeglądów:
Transkrypt
1 Fenomen Ruby'ego Marek Kirejczyk
2 Część 1 Ruby
3 Sukces
4 Rzut okiem na historię Yukihiro Matsumoto Ruby 2004 David Heinemeier Hansson Ruby on Rails (wydzielone z aplikacji BaseCamp) Stanie się KillerApp dla Ruby'iego
5 ...sukcesu wg. statystyk księgarni Amazon w kategorii programowanie pierwsze dwa miejsca zajmują ksiązki o Ruby i RoR Sierpień '2006 Apple decyduje się dołączyć RoR do MacOS X Leopard
6 ...który dopiero się zaczyna 2006 Computerworld magazine Pierwsze miejsce w "The Top Five Technologies You Need to Know About in '07" 2007 Powstaje Groovy on Grails 1.0 (JSR 241) i setki innych języków i frameworków - inspirowany elastycznością RoR
7 Źródło sukcesu?
8
9 Purpule Cow Nowa teoria marketingu Stworzona przez Setha Godina Koniec epoki massmediów Produkt jest niezwykły, wyróżniający się
10
11 Fioletowy rubin? Niezwykła wygoda programisty Krótki kod = czytelny kod Tony lukru składniowego Czyta obiektowość Wysoki poziom abstrakcji i elastyczności Tworzenie języka zbliżonego do dziedziny RoR
12 Ruby i RoR jako nośnik ideologii Purple Cow Start-Up Web 2.0 Human User Interface Design OpenId Google, Apple podobne ideologie
13 Zagadka Ile to jest 3^300?
14 Język Ruby
15 Stare ludowe przysłowie "If it walks like a duck and quacks like a duck, it must be a duck"
16 Składnia Entery znaczące, wcięcia nie Ostatnie wyrażenie to wynik metody Stringi proste 'x' złożone "x" def say(msg) "Hello, #{msg} "
17 Konwencje nazewnicze lokalne parametry STALE NazwyKlas Moduły
18 Niektóre typy wbudowane FixNum i BigNum Automatycznie podmieniane String Zakresy Wyrażenia regularne Symbole num = 81 6.times do puts "#{num.class}: #{num}" num *= num Fixnum: 81 Fixnum: 6561 Fixnum: Bignum: Bignum: Bignum:
19 Tablice Wbudowane w język Ładne inicjalizacje Skrócony zapis inicjalizacji Nil to też obiekt a = [1, 'cat', nil] b = ['a', 'b', 'c'] a = %w{a b c} a[0] nil - obiekt pusty
20 Hashe Wbudowane w język słowniki Składnia a la PHP inst_section = { 'clarinet' => 'woodwind', 'drum' => 'percussion', 'oboe' => 'woodwind', } inst_section[clarinet] -> 'woodwind'
21 Instrukcja warunkowa puts "Danger, Will Robinson" if radiation > 3000 if count > 10 puts "Try again" elseif tries == 3 puts "You lose" else puts "Enter a number"
22 Pętle square = 2 square = square*square while square < 1000 square = 2 while square < 1000 square = square*square
23 Wyrażenia regularne Część języka Są obiektem Operator =~ Metody w bibliotece standardowej if line =~ /\d\d:\d\d:\d\d/ puts "Hour: #{line}"
24 Zakresy Sekwencje iterowanie zawieranie Przedziały Operator === Wyrażenia warunkowe Zwraca true w zadanym przedziale 'a'..'z' my_array = [ 1, 2, 3 ] 0...my_array.length (1..10) === 5 while line = gets puts line if line =~ /start/.. line =~ //
25 Domknięcia
26 Domknięcia Metodzie można przekazać argumentblok Instrukcja yield def call_block puts "Start of method" yield yield puts "End of method" call_block { puts "In the block" }
27 Parametryzowanie domknięć Bardzo elegancka konkurencja klas anonimowych i delegatów Rozwiązanie wprowadzone do C# 3.0, planowane w Javie 7.0 def call_block yield("hello", 99) call_block { str, num...}
28 Propaganda Akcje i User Interface class MyButton < Button def initialize(label, &action) = action def start_button = JukeboxButton.new("Start") { songlist.start } pause_button = JukeboxButton.new("Pause") { songlist.pause } Dużo krócej niż w innych popularnych językach ;)
29 Iteracje Metoda each definiuje iterator animals = %w( ant bee cat dog elk ) animals.each { animal puts animal } [ 'cat', 'dog', 'horse' ].each { name print name, " " } ('a'..'e').each { char print char } Można oczywiście definiować inne iteratory 5.times { print "*" } 3.upto(6) { i print i }
30 Lambda Konwersja bloku na metodę: def n_times(thing) return lambda { n thing * n } p1 = n_times(23) p1.call(3) 69 p1.call(4) 92 p2 = n_times("hello ") p2.call(3) "Hello Hello Hello "
31 Funkcje wyższych rzędów def succ() return lambda { x x + 1 } def compose(x, y) return lambda { a y.call(x.call(a)) } puts compose(succ,succ).call(0) 2
32 Wyjątki Klasyczne rozwiązanie z pewnymi rozszerzeniami Trzy wersje raise propaguje bierzący, lub RuntimeError RuntimeError nazwa klasy, msg i stacktrace (metoda Kernel.caller) f = File.open("testfile") begin #.. process rescue #.. handle error else puts No errors;)" ensure f.close unless f.nil? raise raise "bad mp3 encoding" raise InterfaceException, "Keyboard failure", caller
33 Catch i throw def routine(n) puts n throw :done if n <= 0 routine(n1) catch(:done) { routine(4) } Więcej niż goto Catch zwraca to co throw Element biblioteki, nie języka 4, 3, 2, 1, 0
34 Obiekty
35 Model obiektu w Rubym Każdy obiekt posiada unikalny id Metoda inspekt - zwraca string z nazwą obiektu, id i zawartością Metod to_s - odpowiednik tostring z Javy song = Song.new("Bicylops", "Fleck", 260) @artist="fleck">
36 Konstruktuory i inicjalizacja Statyczna metoda ClassName.new() domyślny konstruktor metoda statyczna, z dowolną liczbą parametrów, uzależnioną od initialize Instancyjna metoda initialize(), wywoływana przez konstruktor domyślny, z ustaloną liczbą parametrów Brak przeładowywania konstuktorów
37 Przykład initialize class Song def initialize(name, artist, = = = duration Song.new("Hit me babe one more time", "Elthon John", 33)
38 Dziedziczenie i super w konstruktorach class KaraokeSong < Song def initialize(name, artist, duration, lyrics) super(name, artist, = lyrics
39 Super w metodach def to_s super + " [#@lyrics]" Alias na metodę nie obiekt, jak w SmallTalku czy Javie
40 Aliasy Aliasy pozwalają tworzyć zdublowane nazwy na metody (nowe referencje na metody) Częściowe definicje klasy klasa składa się z sumy wszystkich (załadowanych) definicji Aliasy są, przydatne jeśli chcemy przedefiniować znaczenie metody używając starej class Fixnum alias old_plus + def +(other) old_plus(other).succ = 5
41 Akcesory class Song... def def = new_duration song = Song.new("Bicylops", "Fleck", 260) song.artist -> "Fleck" song.name -> "Bicylops" song.duration -> 260 song.duration = 257 attr_reader :artist, :duration attr_writer :artist, :name
42 Operatory i przeładowanie W rubym można przeładowywać operatory Indexery: [] i []= Operatory porównywania <=>, <=, >=, ==, <, > Operatory arytmetyczne +,-,*,/ i automatyczne ich odpowiedniki +=... Podobnie ==, =~ i!=,!~ Operator `` - wykonania polecenia powłoki class SongList def
43 Specyfikatory dostępu class MyClass #To by była publiczna metoda, ale #będzie prywatna... def method1 protected def method2 #...o czym zadecydowała ta linijka private :method1 Domyślny dostęp publiczny Słowa kluczowe protected, public, private z klasycznym znaczeniem c++ Można osobno dospecyfikować dostęp do metody
44 Moduły jako namespace'y module Trig PI = def Trig.sin(x) #.. def Trig.cos(x) module Moral VERY_BAD = 0 BAD = 1 def Moral.sin(badness) #... require 'trig' require 'moral' y = Trig.sin(Trig::PI/4) wrongdoing = Moral.sin(Moral::VERY_BAD)
45 Moduły i mixiny Moduły można włączać do klas Inne podejście do problemu wielodziedzieczenia Modułu mogą zawierać metody Nie mają stanu, korzystają ze zmiennych mixinu Przykłady: Comparable - definiuje pozostałe operatory porównywania, na podstawie operatora <=> Enumerable - generuje map, include?, find_all?, inject, na podstawie each Zagadka: W jakim popularnym języku występują mixiny?
46 Moduły przykład uzycia class Song include Comparable def initialize(name, artist, = = = duration def <=>(other) self.duration <=> other.duration song1 = Song.new("My Way", "Sinatra", 225) song2 = Song.new("Bicylops", "Fleck", 260) song1 <=> song2 1 song1 < song2 true song1 == song1 true song1 > song2 false Etc...
47 Przykład - Singleton class MyLogger private_class_method = nil def = s Prywatny konstruktor Zmienna instancyjna trzymająca jedyna kopie obiektu Statyczna metoda dostępowa
48 Przykład Singleton Moduł module MyLogger private_class_method :new = nil def MyLogger.create = new unless Zenkapsułowane pojęcie Tylko jedna zmiana Nie do wykonania w C++, s
49
50
51 Metaprogramowanie
52 Metaprogamowanie Dynamizm i refleksja Otwartość na zmiany Brak makr, naturalna składnia Domknięcia pozwalają na budownie nowych instrukcji sterujących (np.: throw, catch) Kierunek: DSL
53 attr_reader class Module def attr_reader (*syms) syms.each do { sym class_eval %{def } }
54 Refleksja Każdy obiekt posiada składowe methods kolekcja obiektów odbijających metody responds_to? sprawdza czy istnieje metoda kind_of czy jest nadklasą argumentu instance_of czy jest instancją argumentu klass reprezentuje bieżącą klasę klass.superclass reprezentuje nadklasę klass.ancestors lista odbić modułów i nadklasy
55 Refleksja C.D. Odpytywanie ze względu na typy: private_instance_methods protected_instance_methods public_instance_methods singleton_methods class_variables constants
56 Dynamiczne wołanie metod Metoda s "John Coltrane".s(:length) Obiekt Method trane = "John Coltrane".method(:length) miles = "Miles Davis".method("sub") trane.call 13 miles.call(/iles/, '.') "M. Davis" Metoda eval val = 13 eval("val")
57 Bindownie Bindownie metod unbound_length = String.instance_method(:length) class String def length 99 str = "cat" str.length 99 bound_length = unbound_length.bind(str) bound_length.call 3
58 System Hooks Technika pozwalająca łapać zdarzenia rubiego class Object attr_accessor :timestamp class Class alias_method :old_new, :new def new(*args) result = old_new(*args) result.timestamp = Time.now result
59 ObjectSpace Daje dostęp do GC ObjectSpace.each_object(Numeric) { x p x } Enumeruje po wszystkich obiektach Numeric Daje możliwość definiowania finalizerów garbage_collect _id2ref
60 Kontynuacje def strange callcc { continuation return continuation} print "Back in method, " print "Before method. " continuation = strange() print "After method. " continuation.call if continuation Before method. After method. Back in method, After method. Definiuje rozwidlenie w programie Callcc wykonuje kod z bloku, po czym kontynuuje instrukcje następujące Argumentem bloku jest zapisana kontynuacja (save game) Metoda call kontynuacji powraca do momentu, za blokiem Kontynuacja trzyma stan wątku
61 Serwery kontynuacje Nie RoR SmallTalk SeaSide Koniec z sesją pisaniem, bez stanowym, podziałem między requestami GUI lokalne i WWW pisane identycznie Nowe możliwości dla przycisków wstecz i w przód
62 Biblioteka standardowa Wsparcie dla wątków z poziomu języka Marshaling (serializacja) Mechanizm poziomów bezpieczeństwa Server WebRick Framework testujący Zip, xml, rpc, SOAP Rinda Inne
63 Ruby - podsumowanie Wydaje się, że to kolejny krok po Java, C# Odwrót od statycznego typowania Trade-off: elastyczność vs. werfikacja w czasie kompilacji Enkapsułowanie bardziej złożonych idei, niż dane w obiektach Odciążenie programisty, skrócenie czasu pracy Tworzenie języków zbliżonych do dziedziny
64
65 Czemu ruby przetrwa? Jest świetnym językiem DSL Java i C# natrafią na duże bariery już nie długo, jako języki ogólnego zastosowania: Staną się zbyt skomplikowane Nie poradzą sobie z przejściem na massive multicore
66 Czy słabe typowanie jest słabe? Wtyka do Idei Wtyka do NetBeansa Zintegrowane testy jednostkowe
67 Inne znane rozwiązania oparte o ruby Gems menadżer pakietów rubiego raven Budowanie javy za pomoca rubiego JRuby - Ruby na Virtualnej Maszynie Javy, wspópraca z bibliotekami Javy RadRails - przerobione środowisko eclipse (więcej niż wtyka;) dla rubiego
68 Literatura Beyond Java - Bruce Tate O'REILLY Więcej niż Java Helion 2005 Programming Ruby - The Pragmatic Programmers's Guide - Dave Thomas Online live tutorial
Programowanie obiektowe
Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy
Metaprogramowanie w Ruby
24 marca 2011 Cechy języka Wieloparadygmatowy Imperatywny Typowanie Silne Dynamiczne Otwarte klasy Interpretowany Wszystko jest obiektem Moduły i mixiny Moduły Moduły pozwalają na łatwe włączanie ich kodu
Wprowadzenie do języka Ruby
Aleksander Pohl apohllo.pl Krakow Ruby Users Group 19. maja 2007 Kilka słów o Ruby Yukihiro Matz Matsumoto: [...] Poszukiwałem języka potężniejszego od Perla i bardziej obiektowego od Pythona. Wówczas,
Wykład nr 1 Język Ruby i framework Rails
Wykład nr 1 Język Ruby i framework Rails Elektroniczne Przetwarzanie Informacji Konsultacje: czw. 14.00-15.30, pokój 3.211 Historia Rubiego i Railsów 1993 Yukihiro Matsumoto San, Japonia 1995 pierwsze
Wstęp do ruby dla programistów javy
czyli dlaczego java ssie Akademickie Stowarzyszenie Informatyczne 26 lutego 2011 Podstawowe cechy Ruby vs Java Wieloparadygmatowy Imperatywny Typowanie Silne Dynamiczne Otwarte klasy Interpretowany Wszystko
EPI: Interfejs Graficzny 2011/2012 Laboratorium nr 2 Programowanie obiektowe
EPI: Interfejs Graficzny 2011/2012 Laboratorium nr 2 Programowanie obiektowe 9 listopada 2011 Klasa temperatura Funkcjonalności: określanie temeratury w dowolnej skali konwersja temperatury do napisu odczytanie
Programowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
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
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
Programowanie Obiektowe i C++
Programowanie Obiektowe i C++ Smalltalk Marcin Benke 15 stycznia 2007 Marcin Benke (MIMUW) Programowanie Obiektowe i C++ 15 stycznia 2007 1 / 26 Marcin Benke (MIMUW) Programowanie Obiektowe i C++ 15 stycznia
TOPIT Załącznik nr 3 Programowanie aplikacji internetowych
Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć
Programowanie w Ruby
Programowanie w Ruby Wykład 3 Marcin Młotkowski 22 października 2018 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie w Ruby 70 / 432 Z poprzedniego wykładu String to ciąg bajtów zwykle reprezentujących
Programowanie w Ruby
Programowanie w Ruby Wykład 4 Marcin Młotkowski 28 października 2016 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 Marcin Młotkowski Programowanie w Ruby 2 / 41 Deklaracja klasy Klasy i obiekty class
Programowanie w Ruby
Programowanie w Ruby Wykład 4 Marcin Młotkowski 29 października 2018 Plan wykładu 1 2 3 Marcin Młotkowski Programowanie w Ruby 100 / 430 Deklaracja klasy class Device Marcin Młotkowski Programowanie w
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności
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,
JavaScript funkcyjność
JavaScript funkcyjność WWW 9 kwietnia 2014 Możliwości tworzenia dynamicznych stron WWW HTML i CSS. Skrypty CGI (Perl, PHP). Serwery (django, java). Plug-iny. Ksiażka Większość przykładów pochodzi z ksiażki:
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
Programowanie w Ruby
Programowanie w Ruby 1 Marcin Młotkowski 8 października 2018 Plan wykładu 1 2 Źródła wiedzy Zaliczenia 3 4 5 Marcin Młotkowski Programowanie w Ruby 2 / 432 Informacje organizacyjne Strona wykładu http://www.ii.uni.wroc.pl/~marcinm/dyd/ruby/
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
Programowanie w Ruby
Programowanie w Ruby Wykład 4 Marcin Młotkowski 24 października 2012 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 Marcin Młotkowski Programowanie w Ruby 2 / 40 Deklaracja klasy Klasy i obiekty class
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
Scala - programowanie obiektowo-funkcyjne
Program szkolenia: Scala - programowanie obiektowofunkcyjne Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Scala - programowanie obiektowo-funkcyjne Scala-Scala Scala developerzy
Ruby. Leksykon kieszonkowy
Ruby. Leksykon kieszonkowy Autor: Michael Fitzgerald ISBN: 978-83-246-1384-7 Tytu³ orygina³u: Ruby Pocket Reference Format: B6, stron: 192 Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
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
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
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera
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
KOTLIN. Język programowania dla Androida
KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga
PHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści
Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości
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
Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Technologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów
Kurs rozszerzony języka Python
Wykład 2. 13 października 2017 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Deklaracja klasy Klasy i obiekty Przykłady class Figura: Pierwsza
Programowanie w Ruby
Programowanie w Ruby Wykład 1 Marcin Młotkowski 3 października 2012 Plan wykładu Sprawy organizacyjne Wykład Źródła wiedzy Zaliczenia O języku Historia i pochodzenie języka O języku Instrukcje złożone
Programowanie w języku Java WYKŁAD
Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 26.05.2014 WYKŁAD 13 Refleksja Data Access Object
WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java
WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH Mirosław Gołda, Programista Java Agenda Kilka słów o języku Groovy Wpięcie Grooviego w projekt Springowy Testy jednostkowe
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Java jest językiem dynamicznym
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. 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
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
JavaScript - korzenie
JavaScript - korzenie Dowiesz się o historii JavaScript, jego dialektach i wersjach. Poznasz złe i dobre strony języka, a gdy zaskoczy Cię działanie któregoś z jego elementów, będziesz wiedział, gdzie
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
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
Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Obiektowy Caml. Paweł Boguszewski
Obiektowy Caml Paweł Boguszewski Plan prezentacji Charakterystyka języka Składnia Obiektowość w OCamlu Wyjątki Standardowe Moduły Narzędzia wspomagające Bibliografia OCaml OCaml jest obiektowym, funkcyjnym
SWIFT. Zaawansowane Programowanie Obiektowe
SWIFT Zaawansowane Programowanie Obiektowe Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje
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
Programowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke 15 stycznia 2007 1 1 Make Kompilacja i łaczenie Każdy plik z implementacją kompilujemy do pliku obiektowego z rozserzeniem.o (pod Windows.obj), np. g++ -c dtest.cpp
TorqueBox. Moc Javy piękno Rubiego
TorqueBox Moc Javy piękno Rubiego Marek. JBoss AS 7 + = No, do rzeczy panie! Dziś w menu: 50 / 40 / 10 Czym jest TorqueBox? Ruby i Java? Huh? DO RZECZY! Cel. Web: Rails, Sinatra, Rack. Ponadto: wiadomości,
Podstawy programowania III
Podstawy programowania III Jan Kazimirski 1 Opis zajęć Zastosowanie funkcji i obiektów w PHP powtórzenie zagadnień. Dostęp do bazy danych PostgreSQL z poziomu skryptu PHP. Wprowadzenie do języka SQL. Przykłady
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
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i
Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z
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
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
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
Operator przypisania. Jest czym innym niż konstruktor kopiujący!
Operator przypisania Jest czym innym niż konstruktor kopiujący! Domyślnie jest zdefiniowany jako przypisanie składowa po składowej (zatem niekoniecznie bajt po bajcie). Dla klasy X definiuje się jako X&
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
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,
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
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
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
Smarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
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
Kurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
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
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Programowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 6.11.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 6.11.2006 1 / 138 Operator przypisania Jest czym innym niż konstruktor kopiujacy!
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności
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
Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.
Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik
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
Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA
Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty
Programowanie obiektowe
Programowanie obiektowe Metody statyczne i klasowe Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. VI Jesień 2013 1 / 23 W poprzednich odcinkach... Klasy kategorie obiektów Przynależność
Programowanie w Ruby
Programowanie w Ruby Wykład 7 Marcin Młotkowski 26 listopada 2018 Plan wykładu 1 2 3 Marcin Młotkowski Programowanie w Ruby 199 / 436 Refleksje (introspekcje) Przegląd zaimplementowanych metod Przegląd
Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki
Programowanie obiektowe W1 Wprowadzenie Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Ogólna charakterystyka języka C++ C++ jest obiektowym językiem programowania,
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
Programowanie w Ruby
Programowanie w Ruby Wykład 7 Marcin Młotkowski 2 grudnia 2016 Plan wykładu Jak zajrzeć do środka 1 Jak zajrzeć do środka 2 3 Marcin Młotkowski Programowanie w Ruby 2 / 28 Refleksje (introspekcje) Przegląd
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Klasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny
Scenariusz Web Design DHTML na 10 sesji L.p. Specyficzne detale 2.1 - Strony statyczne I dynamiczne - Dodawanie kodu VBScript do strony HTML doc w Rysunek nie jest potrzebny 2.1.1 Opcje w pisaniu skryptów
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
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
Podstawy otwartych języków programowania Przechowywanie danych
Podstawy otwartych języków programowania Przechowywanie danych Wiktor Wandachowicz Sposoby przechowywania danych Typy podstawowe Pojedyncze obiekty Tablice obiektów i tablice typów podstawowych jednowymiarowe
UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Czym jest Ruby on Rails?
Czym jest Ruby on Rails? Ruby on Rails - napisany w języku Ruby framework open source do szybkiego tworzenia aplikacji internetowych w oparciu o architekturę MVC David Heinemeier Hansson twórca Rails Ruby
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,
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
Programowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Obiekty i klasy w Pythonie Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. III Jesień 2013 1 / 23 Klasy i obiekty Klasy w implementacji
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
Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
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
Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone
Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
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
Technologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 8 (15.04.2019) Kompilacja Kompilacja programu (kodu): proces tłumaczenia kodu napisanego w wybranym języku na kod maszynowy, zrozumiały