Slide utilizado no curso preparatório para a certificação OCAJP7. Nessa aula aprendemos sobre a sobrecarga e a sobrescrita de métodos. http://www.sitedoph.com.br/preparatorio-para-a-certificacao-java-ocajp-7-aula-2/
Недавно было открыто несколько новых метапрограмных техник в C++, позволяющих реализовать рефлексию, работающую "из коробки". В докладе я расскажу об этих техниках, покажу примеры использования и расскажу об их применимости в C++17. Желающие уже сейчас могут начать экспериментировать с рефлексией, используя библиотеку https://github.com/apolukhin/magic_get
Недавно было открыто несколько новых метапрограмных техник в C++, позволяющих реализовать рефлексию, работающую "из коробки". В докладе я расскажу об этих техниках, покажу примеры использования и расскажу об их применимости в C++17. Желающие уже сейчас могут начать экспериментировать с рефлексией, используя библиотеку https://github.com/apolukhin/magic_get
Семейство библиотек clang предоставляет разработчикам широчайшие возможности по реализации различных инструментов, основанных на разборе и анализе абстрактного синтаксического дерева (AST). В частности, авторы clang выпускают такой инструмент, как clang-tidy, который является мощным статическим анализатором кода. Мы разберемся, как этот инструмент применить в процессе разработки для С++ и как дополнить его собственными проверками. Попутно разберемся с некоторыми занимательными особенностями AST для С++.
Хочется чего-то новенького, необычного? Тогда добро пожаловать в мир чудеc C++17:
if constexpr (auto& [number, ok] = variable; ok)
return "Hi"
else
return number + 42;
Вы услышите о новом стандарте C++, обнаружите для себя новые полезные классы, функции и возможности языка. Для каждой новинки я приведу примеры использования, расскажу о нюансах и подводных камнях.
А ещё вы узнаете о том, как проходят заседания комитета по стандартизации C++ и сможете задать интересующие вас вопросы связанные с нововведениями С++17 и С++Next.
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016Loïc Knuchel
Vous commencez à en entendre parler de plus en plus mais vous avez encore du mal à voir ce que c’est et à comprendre de que ça change concrètement, ce talk est fait pour vous !!!
La programmation fonctionnelle est une manière de programmer basée sur les fonctions qui permet de faire du code vraiment modulaire, améliorer la qualité et limiter les bugs. Vous ne me croyez pas ? Venez voir cette session !
Slide utilizado no curso preparatório para a certificação OCAJP7. Nessa aula aprendemos sobre os tipos primitivos e tipos de referência e como eles se comportam na stack e na heap. http://www.sitedoph.com.br/preparatorio-para-a-certificacao-java-ocajp-7-aula-2/
Slide utilizado no curso preparatório para a certificação OCAJP7. Nessa aula aprendemos como utilizar os escopos e os modificadores. http://www.sitedoph.com.br/preparatorio-para-a-certificacao-java-ocajp-7-aula-2/
Семейство библиотек clang предоставляет разработчикам широчайшие возможности по реализации различных инструментов, основанных на разборе и анализе абстрактного синтаксического дерева (AST). В частности, авторы clang выпускают такой инструмент, как clang-tidy, который является мощным статическим анализатором кода. Мы разберемся, как этот инструмент применить в процессе разработки для С++ и как дополнить его собственными проверками. Попутно разберемся с некоторыми занимательными особенностями AST для С++.
Хочется чего-то новенького, необычного? Тогда добро пожаловать в мир чудеc C++17:
if constexpr (auto& [number, ok] = variable; ok)
return "Hi"
else
return number + 42;
Вы услышите о новом стандарте C++, обнаружите для себя новые полезные классы, функции и возможности языка. Для каждой новинки я приведу примеры использования, расскажу о нюансах и подводных камнях.
А ещё вы узнаете о том, как проходят заседания комитета по стандартизации C++ и сможете задать интересующие вас вопросы связанные с нововведениями С++17 и С++Next.
Comprendre la programmation fonctionnelle, Blend Web Mix le 02/11/2016Loïc Knuchel
Vous commencez à en entendre parler de plus en plus mais vous avez encore du mal à voir ce que c’est et à comprendre de que ça change concrètement, ce talk est fait pour vous !!!
La programmation fonctionnelle est une manière de programmer basée sur les fonctions qui permet de faire du code vraiment modulaire, améliorer la qualité et limiter les bugs. Vous ne me croyez pas ? Venez voir cette session !
Slide utilizado no curso preparatório para a certificação OCAJP7. Nessa aula aprendemos sobre os tipos primitivos e tipos de referência e como eles se comportam na stack e na heap. http://www.sitedoph.com.br/preparatorio-para-a-certificacao-java-ocajp-7-aula-2/
Slide utilizado no curso preparatório para a certificação OCAJP7. Nessa aula aprendemos como utilizar os escopos e os modificadores. http://www.sitedoph.com.br/preparatorio-para-a-certificacao-java-ocajp-7-aula-2/
O documento descreve vários construtores de classes em Java com diferentes modificadores de acesso (público, privado, protegido, estático, final e abstrato) e parâmetros.
O documento apresenta um código Java que calcula quantos números entre 1 e 100 são múltiplos de 3 ou 5 utilizando um loop for e uma condição if. O resultado é impresso no final.
Slide utilizado no curso preparatório para a certificação OCAJP7. Nessa aula explicamos um pouco sobre as provas da certificação Java e indicamos livros e materiais para estudo e preparação. http://www.sitedoph.com.br/preparatorio-para-a-certificacao-java-ocajp-7-aula-1/
O documento apresenta um exemplo de uso de interfaces e herança em Java. Define uma interface Domesticavel para representar animais que podem ser domesticados. Em seguida, define classes Gato, Cachorro e Papagaio que herdam de Mamifero e Ave e implementam a interface Domesticavel. Finalmente, um método domesticar é chamado para cada instância dessas classes.
Slide utilizado no curso preparatório para a certificação OCAJP7. Nessa aula fizemos uma Revisão de Classes e arquivos .java http://www.sitedoph.com.br/preparatorio-para-a-certificacao-java-ocajp-7-aula-1/
4. package ph.sitedo.certificacao.sobrescrita_sobrecarga;
public class Cachorro extends Mamifero
implements Domesticavel {
@Override
public Cachorro(){
super();
}
public void comer() {
System.out.println("Comendo como um Cachorro");
}
public boolean domestica() {
return true;
}
}
6. public class A {
public int fazAlgo() {
return 1;
}
}
class B extends A {
public int fazAlgo() {
return 2;
}
public int fazAlgo(long l) {
return (int) l;
}
public int fazAlgo(String s) {
return new Integer(s);
}
}
7. public class A { public int fazAlgo() {return 1;} }
class B extends A {
public int fazAlgo() {
return 2;
}
public int fazAlgo(long l) {
return (int) l;
}
}
8. class A1 {
A1 get() { return this; }
}
class B1 extends A1 {
B1 get() {
return this;
}
void message() {
System.out.println("Retorno Covariante");
}
public static void main(String args[]) {
new B1().get().message();
}
}
9. class A1 {
int get() {
return 1;
}
}
class B1 extends A1 {
long get() {
return 1L;
}
}
10. class A1 {
public int get() {
return 1;
}
}
class B1 extends A1 {
protected int get() {
return 1;
}
}
11. class A1 {
protected int get() {
return 1;
}
}
class B1 extends A1 {
public int get() {
return 1;
}
}
12.
13. class A1 {
int get() throws IOException {
return 1;
}
}
class B1 extends A1 {
int get() throws IOException,
ParseException {
return 1;
}
}
14. class A1 {
int get() throws NumberFormatException {
return 1;
}
}
class B1 extends A1 {
int get() throws Exception {
return 1;
}
}
15. class A1 {
private int get()
throws NumberFormatException {
return 1;
}
}
class B1 extends A1 {
int get() throws Exception {
return 1;
}
}
17. class A1 {
int get() throws Exception {
return 1;
}
}
class B1 extends A1 {
int get() throws IOException {
return 1;
}
}
18. class A1 {
int get() throws Exception {
return 1;
}
}
class B1 extends A1 {
int get() throws NumberFormatException {
return 1;
}
}
19. class A1 {
int get() {
return 1;
}
long get() {
return 1L;
}
}
20. class A1 {
int get() {
return 1;
}
long get(long numero) {
return numero;
}
}
21. class A1 {
public int get() throws IOException{
return 1;
}
private long get(long numero) {
return numero;
}
String get(String numero) throws RuntimeException{
return numero;
}
protected double get(double numero) {
return numero;
}
}
22. public class TestClass {
public static void main(String args[]) {
A o1 = new C();
System.out.println(o1.i);
System.out.println(o1.m1());
System.out.println(((A) o1).i);
System.out.println(((A) o1).m1());
System.out.println(((B) o1).i);
System.out.println(((B) o1).m1());
System.out.println(((C) o1).i);
System.out.println(((C) o1).m1());
}
}
class A {
int i = 10;
int m1() {
return i;
}
}
class B extends A {
int i = 20;
int m1() {
return i;
}
}
class C extends B {
int i = 30;
int m1() {
return i;
}
}
10
30
10
30
20
30
30
30
23. public class TestClass {
public static void main(String args[]) {
A o1 = new C();
System.out.println(o1.i);
System.out.println(o1.m1());
System.out.println(((A) o1).i);
System.out.println(((A) o1).m1());
System.out.println(((B) o1).i);
System.out.println(((B) o1).m1());
System.out.println(((C) o1).i);
System.out.println(((C) o1).m1());
}
}
class A {
int i = 10;
int m1() {
return i;
}
}
class B extends A {
int i = 20;
int m1() {
return i;
}
}
class C extends B {
int i = 30;
int m1() {
return i;
}
}
10
30
10
30
20
30
30
30
24. public class TestClass {
public static void main(String args[]) {
A o1 = new B();
System.out.println(o1.i);
System.out.println(o1.m1());
System.out.println(((A) o1).i);
System.out.println(((A) o1).m1());
System.out.println(((B) o1).i);
System.out.println(((B) o1).m1());
}
}
class A {
int i = 10;
int m1() {
i++;
return i;
}
}
class B extends A {
int i = 20;
int m1() {
i++;
return i;
}
}
10
21
10
22
22
23