Enviar búsqueda
Cargar
Scala #2
•
2 recomendaciones
•
793 vistas
Alexander Podkhalyuzin
Seguir
Ingeniería
Vista de diapositivas
Denunciar
Compartir
Vista de diapositivas
Denunciar
Compartir
1 de 41
Descargar ahora
Descargar para leer sin conexión
Recomendados
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
Unguryan Vitaliy
Cтатические классы и статические члены класса
Cтатические классы и статические члены класса
Zhaslan Doschanov
Рефлексия в java
Рефлексия в java
Unguryan Vitaliy
Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.
Anton Moiseenko
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
metaform
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3
Technopark
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.
Anton Moiseenko
Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objects
olegol
Recomendados
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
Unguryan Vitaliy
Cтатические классы и статические члены класса
Cтатические классы и статические члены класса
Zhaslan Doschanov
Рефлексия в java
Рефлексия в java
Unguryan Vitaliy
Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 3. Part# 1. Abstract classes.
Anton Moiseenko
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
metaform
C++ осень 2012 лекция 3
C++ осень 2012 лекция 3
Technopark
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.
Anton Moiseenko
Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objects
olegol
Java Core. Lecture# 3. Part# 3. Multithreading.
Java Core. Lecture# 3. Part# 3. Multithreading.
Anton Moiseenko
Наследование и полиморфизм
Наследование и полиморфизм
Ural Federal University named after First President of Russia B.N. Yeltsin
Java. Classes.
Java. Classes.
Alexey Bovanenko
лек11 5
лек11 5
Anastasia Snegina
Классы и объекты С#
Классы и объекты С#
Ural Federal University named after First President of Russia B.N. Yeltsin
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
Technopark
C++ осень 2013 лекция 3
C++ осень 2013 лекция 3
Technopark
20100321 virtualization igotti_lecture08
20100321 virtualization igotti_lecture08
Computer Science Club
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
Unguryan Vitaliy
Java. Generic - шаблонные типы.
Java. Generic - шаблонные типы.
Unguryan Vitaliy
Step 3.2
Step 3.2
DmitryTrushkin
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
Anton Moiseenko
Java Core. Lecture# 3. Part# 2. Exceptions.
Java Core. Lecture# 3. Part# 2. Exceptions.
Anton Moiseenko
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
metaform
Scala training
Scala training
Alexander Podkhalyuzin
Backend: Пишем на Scala для браузера
Backend: Пишем на Scala для браузера
CodeFest
Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)
Арсений Жижелев
Scala #5
Scala #5
Alexander Podkhalyuzin
Feature suggester
Feature suggester
Alexander Podkhalyuzin
Lec 2
Lec 2
Alexander Rusin
Scala #4
Scala #4
Alexander Podkhalyuzin
Erlang
Erlang
Idris Yusupov
Más contenido relacionado
La actualidad más candente
Java Core. Lecture# 3. Part# 3. Multithreading.
Java Core. Lecture# 3. Part# 3. Multithreading.
Anton Moiseenko
Наследование и полиморфизм
Наследование и полиморфизм
Ural Federal University named after First President of Russia B.N. Yeltsin
Java. Classes.
Java. Classes.
Alexey Bovanenko
лек11 5
лек11 5
Anastasia Snegina
Классы и объекты С#
Классы и объекты С#
Ural Federal University named after First President of Russia B.N. Yeltsin
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
Technopark
C++ осень 2013 лекция 3
C++ осень 2013 лекция 3
Technopark
20100321 virtualization igotti_lecture08
20100321 virtualization igotti_lecture08
Computer Science Club
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
Unguryan Vitaliy
Java. Generic - шаблонные типы.
Java. Generic - шаблонные типы.
Unguryan Vitaliy
Step 3.2
Step 3.2
DmitryTrushkin
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
Anton Moiseenko
Java Core. Lecture# 3. Part# 2. Exceptions.
Java Core. Lecture# 3. Part# 2. Exceptions.
Anton Moiseenko
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
metaform
La actualidad más candente
(14)
Java Core. Lecture# 3. Part# 3. Multithreading.
Java Core. Lecture# 3. Part# 3. Multithreading.
Наследование и полиморфизм
Наследование и полиморфизм
Java. Classes.
Java. Classes.
лек11 5
лек11 5
Классы и объекты С#
Классы и объекты С#
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
C++ осень 2013 лекция 3
C++ осень 2013 лекция 3
20100321 virtualization igotti_lecture08
20100321 virtualization igotti_lecture08
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Generic - шаблонные типы.
Java. Generic - шаблонные типы.
Step 3.2
Step 3.2
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
Java Core. Lecture# 3. Part# 2. Exceptions.
Java Core. Lecture# 3. Part# 2. Exceptions.
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
Destacado
Scala training
Scala training
Alexander Podkhalyuzin
Backend: Пишем на Scala для браузера
Backend: Пишем на Scala для браузера
CodeFest
Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)
Арсений Жижелев
Scala #5
Scala #5
Alexander Podkhalyuzin
Feature suggester
Feature suggester
Alexander Podkhalyuzin
Lec 2
Lec 2
Alexander Rusin
Scala #4
Scala #4
Alexander Podkhalyuzin
Erlang
Erlang
Idris Yusupov
Scala magic
Scala magic
Alexander Podkhalyuzin
Scala lecture #4
Scala lecture #4
Alexander Podkhalyuzin
Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)
Alexander Podkhalyuzin
Scala plugin for IntelliJ IDEA
Scala plugin for IntelliJ IDEA
Alexander Podkhalyuzin
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
ScalaNsk
Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)
Alexander Podkhalyuzin
Scala #3
Scala #3
Alexander Podkhalyuzin
Distributed erlang
Distributed erlang
Yuri Zhloba
Самурайский путь молодого Scala-программиста
Самурайский путь молодого Scala-программиста
Sergey Lobin
Переход на Scala: босиком по граблям
Переход на Scala: босиком по граблям
Sveta Bozhko
Implicit Implicit Scala
Implicit Implicit Scala
Kota Mizushima
Scala performance под капотом
Scala performance под капотом
Roman Grebennikov
Destacado
(20)
Scala training
Scala training
Backend: Пишем на Scala для браузера
Backend: Пишем на Scala для браузера
Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)
Scala #5
Scala #5
Feature suggester
Feature suggester
Lec 2
Lec 2
Scala #4
Scala #4
Erlang
Erlang
Scala magic
Scala magic
Scala lecture #4
Scala lecture #4
Under the hood of scala implicits (Scala eXchange 2014)
Under the hood of scala implicits (Scala eXchange 2014)
Scala plugin for IntelliJ IDEA
Scala plugin for IntelliJ IDEA
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
Under the hood of scala implicits (kl10tch 10.03.2015)
Under the hood of scala implicits (kl10tch 10.03.2015)
Scala #3
Scala #3
Distributed erlang
Distributed erlang
Самурайский путь молодого Scala-программиста
Самурайский путь молодого Scala-программиста
Переход на Scala: босиком по граблям
Переход на Scala: босиком по граблям
Implicit Implicit Scala
Implicit Implicit Scala
Scala performance под капотом
Scala performance под капотом
Scala #2
1.
Classes in Scala
2.
Class types ●
class ● trait: class without constructors ● object: singleton class
3.
Primary constructor Есть
главный конструктор, который будет всегда вызван:
4.
Primary constructor С
модификатором доступа:
5.
Super call Класс
может наследовать ровно один другой класс:
6.
Trait implementation Все
остальное записывается через with:
7.
Trait implementation Базовый
класс даже и не нужен:
8.
Class body Тело
класса записывается сразу после списка наследования:
9.
Constructor body Телом
конструктора является тело класса:
10.
Property Объявление val/var
в классе - свойство:
11.
Property
12.
Property Значит свойства
могут переопределять методы и их можно переопределить другим свойством:
13.
Constructor property Можно
объявлять прямо в конструкторе:
14.
Constructor property Если
при этом что-то переопределяем:
15.
Override Модификатор требуется
всегда при переопределении. При имплементации он опционален:
16.
Functions Возвращаемое значение
можно опустить. Фигурные скобки не обязательны:
17.
Currying Можно определять
несколько списков параметров:
18.
Secondary constructor Функция
с именем this:
19.
Secondary constructor Конструкторы
образуют дерево.
20.
Traits Тоже, что
и класс, но без конструкторов. Не может наследовать классы.
21.
Trait in bytecode
22.
Multiple inheritance Классическая
проблема:
23.
Linearization Определяет порядок
наследования
24.
Linearization Линеаризация определяется
поиском в глубину начиная справа с удалением дубликатов: [D, C, A, B, A] => [D, C, B, A] Семантика программы зависит от порядка наследования!
25.
Initialization Линеаризация также
задает порядок инициализации в обратном направлении.
26.
Early definitions Можно
определить переменные до вызова суперконструктора:
27.
Early definitions Это
решает проблему инициализации:
28.
Lazy val Можно
определить переменные, которые будет вычислены лишь в момент первого обращения:
29.
Lazy val in
bytecode
30.
Lazy val init
Можно изначальную проблему решить так:
31.
Objects Синглтон класс:
32.
Objects in bytecode
33.
Generic classes Записываются
в квадратных скобках:
34.
Bounds На generics
можно накладывать условия снизу и сверху:
35.
Variance (covariance) Covariant
type parameter:
36.
Variance (contravariance) Contravariant
type parameter
37.
Variance positions Для
таких generics определены правильные позиции в классе:
38.
Type aliases Еще
один возможный член класса:
39.
Generic type alias
Можно упрощать типы при желании:
40.
Abstract type alias
Можно не определять тип: На что это похоже?
41.
Type alias VS
generics Пример реализации с abstract type alias
Descargar ahora