diff --git a/3sadsis2020.asta b/3sadsis2020.asta index 31b9b64..100266b 100644 Binary files a/3sadsis2020.asta and b/3sadsis2020.asta differ diff --git a/esoft4-exemplo.asta b/esoft4-exemplo.asta new file mode 100644 index 0000000..ee54716 Binary files /dev/null and b/esoft4-exemplo.asta differ diff --git a/opla-tool.asta b/opla-tool.asta index 42622ea..e87df71 100644 Binary files a/opla-tool.asta and b/opla-tool.asta differ diff --git "a/src/main/java/aula20200619/heran\303\247a/AppHeran\303\247a.java" "b/src/main/java/aula20200619/heran\303\247a/AppHeran\303\247a.java" new file mode 100644 index 0000000..a93919d --- /dev/null +++ "b/src/main/java/aula20200619/heran\303\247a/AppHeran\303\247a.java" @@ -0,0 +1,39 @@ +package aula20200619.herança; + +import java.util.Date; + +public class AppHerança { + + public static void main(String[] args) { + Autor joaquim = new Autor("Joaquim Alamamanda Junior", "654.878.436-44"); + Autor joana = new Autor("Joana Alamamanda Junior", "654.878.436-44"); + + + + Publicação assandoPães = new Livro( + "Assando Pães na Panela de Ferro",new Date(2020, 0, 23), 664, new Autor[] {joaquim, joana}); + + Publicação pãoCaseiro = new Livro( + "Aprenda a fazer pão caseiro em 21 horas",new Date(2010, 11, 15), 121, new Autor[] {joaquim}); + + Publicação panificação2020 = new Artigo( + "Técnicas atuais de panificação caseira",new Date(2020, 3, 15), 200, new Autor[] {joaquim, joana}); + + //System.out.println(assandoPães.toString()); + //System.out.println(assandoPães); + + imprimirPublicaçõesDoAutorNoConsole(joaquim); + imprimirPublicaçõesDoAutorNoConsole(joana); + + } + private static void imprimirPublicaçõesDoAutorNoConsole(Autor autorQualquer) { + System.out.println(); + System.out.println("**************************"); + System.out.println("Publicações de: " + autorQualquer); + System.out.println("Resumo: Livros=" + autorQualquer.contarLivros() + ", Artigos="+autorQualquer.contarArtigos()); + for (Publicação p : autorQualquer.getPublicações()) { + System.out.println(" " + p); + } + } + +} diff --git "a/src/main/java/aula20200619/heran\303\247a/Artigo.java" "b/src/main/java/aula20200619/heran\303\247a/Artigo.java" new file mode 100644 index 0000000..b72549d --- /dev/null +++ "b/src/main/java/aula20200619/heran\303\247a/Artigo.java" @@ -0,0 +1,11 @@ +package aula20200619.herança; + +import java.util.Date; + +public class Artigo extends Publicação { + + public Artigo(String título, Date dataDePublicação, int númeroDePáginas, Autor[] autores) { + super(título, dataDePublicação, númeroDePáginas, autores); + } + +} diff --git "a/src/main/java/aula20200619/heran\303\247a/Autor.java" "b/src/main/java/aula20200619/heran\303\247a/Autor.java" new file mode 100644 index 0000000..c445fc4 --- /dev/null +++ "b/src/main/java/aula20200619/heran\303\247a/Autor.java" @@ -0,0 +1,90 @@ +package aula20200619.herança; + +import java.util.HashSet; + +public class Autor { + + private String nome; + private String cpf; + private HashSet publicações = new HashSet<>(); + + public Autor(String nome, String cpf) { + this.nome = nome; + this.cpf = cpf; + } + + public String getNome() { + return nome; + } + + public String getCpf() { + return cpf; + } + + public void addPublicação(Publicação p) { + if (this.publicações.contains(p)) { + return; + } + this.publicações.add(p); + } + public HashSet getPublicações() { + return publicações; + } + + public int contarLivros() { + int total = 0; + for (Publicação publicação : publicações) { + if (publicação instanceof Livro) { + total++; + } + } + return total; + } + + public int contarArtigos() { + int total = 0; + for (Publicação publicação : publicações) { + if (publicação instanceof Artigo) { + total++; + } + } + return total; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((cpf == null) ? 0 : cpf.hashCode()); + result = prime * result + ((nome == null) ? 0 : nome.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Autor other = (Autor) obj; + if (cpf == null) { + if (other.cpf != null) + return false; + } else if (!cpf.equals(other.cpf)) + return false; + if (nome == null) { + if (other.nome != null) + return false; + } else if (!nome.equals(other.nome)) + return false; + return true; + } + + @Override + public String toString() { + return "Autor [nome=" + nome + ", cpf=" + cpf + "]"; + } + +} diff --git "a/src/main/java/aula20200619/heran\303\247a/Livro.java" "b/src/main/java/aula20200619/heran\303\247a/Livro.java" new file mode 100644 index 0000000..4c053a6 --- /dev/null +++ "b/src/main/java/aula20200619/heran\303\247a/Livro.java" @@ -0,0 +1,11 @@ +package aula20200619.herança; + +import java.util.Date; + +public class Livro extends Publicação { + + public Livro(String título, Date dataDePublicação, int númeroDePáginas, Autor[] autores) { + super(título, dataDePublicação, númeroDePáginas, autores); + } + +} diff --git "a/src/main/java/aula20200619/heran\303\247a/Publica\303\247\303\243o.java" "b/src/main/java/aula20200619/heran\303\247a/Publica\303\247\303\243o.java" new file mode 100644 index 0000000..84423cd --- /dev/null +++ "b/src/main/java/aula20200619/heran\303\247a/Publica\303\247\303\243o.java" @@ -0,0 +1,78 @@ +package aula20200619.herança; + +import java.util.Date; +import java.util.HashSet; + +public abstract class Publicação { + private String título; + private Date dataDePublicação; + private int númeroDePáginas; + private HashSet autores = new HashSet<>(); + + + public Publicação(String título, Date dataDePublicação, int númeroDePáginas, Autor[] autores) { + this.título = título; + this.dataDePublicação = dataDePublicação; + this.númeroDePáginas = númeroDePáginas; + for (Autor a : autores) { + this.autores.add(a); + a.addPublicação(this); + } + } + + public HashSet getAutores() { + return autores; + } + + public String getTítulo() { + return título; + } + + public Date getDataDePublicação() { + return dataDePublicação; + } + + public int getNúmeroDePáginas() { + return númeroDePáginas; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((dataDePublicação == null) ? 0 : dataDePublicação.hashCode()); + result = prime * result + ((título == null) ? 0 : título.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Publicação other = (Publicação) obj; + if (dataDePublicação == null) { + if (other.dataDePublicação != null) + return false; + } else if (!dataDePublicação.equals(other.dataDePublicação)) + return false; + if (título == null) { + if (other.título != null) + return false; + } else if (!título.equals(other.título)) + return false; + return true; + } + + @Override + public String toString() { + return this.getClass().getSimpleName() + " [título=" + título + ", dataDePublicação=" + dataDePublicação + ", númeroDePáginas=" + + númeroDePáginas + ", autores=" + autores + "]"; + } + + + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/Animal.java" "b/src/main/java/aula20200626/heran\303\247a/Animal.java" new file mode 100644 index 0000000..25e177a --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/Animal.java" @@ -0,0 +1,13 @@ +package aula20200626.herança; + +public abstract class Animal { + + public abstract void locomover(); + + public abstract void alimentar(); + + public void morrer() { + System.out.println("Parada completa dos processos biológicos... #rip"); + } + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/AppHeran\303\247a26.java" "b/src/main/java/aula20200626/heran\303\247a/AppHeran\303\247a26.java" new file mode 100644 index 0000000..f007283 --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/AppHeran\303\247a26.java" @@ -0,0 +1,38 @@ +package aula20200626.herança; + +import java.util.ArrayList; +import java.util.List; + +public class AppHerança26 { + + public static void main(String[] args) { + List zoológico = new ArrayList<>(); + + zoológico.add(new Águia()); + zoológico.add(new Tigre()); + zoológico.add(new Minhoca()); + zoológico.add(new Minhoca()); + zoológico.add(new Tilápia()); + zoológico.add(new Tilápia()); + zoológico.add(new Tilápia()); + zoológico.add(new Tilápia()); + zoológico.add(new Tigre()); + zoológico.add(new Tigre()); + + for (Animal a : zoológico) { + if (a instanceof Vertebrado) { + Vertebrado novaReferência = (Vertebrado) a; + novaReferência.formarOssos(); + } else if (a instanceof Invertebrado) { + System.out.println("Opa, um invertebrado aqui! " + a.getClass() ); + } + //a.alimentar(); + //a.morrer(); + } + + System.out.println("Fim."); + + + } + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/Invertebrado.java" "b/src/main/java/aula20200626/heran\303\247a/Invertebrado.java" new file mode 100644 index 0000000..56a21b7 --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/Invertebrado.java" @@ -0,0 +1,7 @@ +package aula20200626.herança; + +public interface Invertebrado { + + + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/Minhoca.java" "b/src/main/java/aula20200626/heran\303\247a/Minhoca.java" new file mode 100644 index 0000000..4ad6ed7 --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/Minhoca.java" @@ -0,0 +1,17 @@ +package aula20200626.herança; + +public class Minhoca extends Animal implements Invertebrado { + + @Override + public void locomover() { + System.out.println("Minhoca se arrastando..."); + + } + + @Override + public void alimentar() { + System.out.println("Minhoca deglutindo matéria orgânica."); + + } + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/Tigre.java" "b/src/main/java/aula20200626/heran\303\247a/Tigre.java" new file mode 100644 index 0000000..4eac5fc --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/Tigre.java" @@ -0,0 +1,22 @@ +package aula20200626.herança; + +public class Tigre extends Animal implements Vertebrado { + + @Override + public void locomover() { + System.out.println("Tigre correndo!"); + + } + + @Override + public void alimentar() { + System.out.println("Tigre consumindo a caça!"); + } + + @Override + public void formarOssos() { + System.out.println("Tigre formando ossos."); + + } + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/Til\303\241pia.java" "b/src/main/java/aula20200626/heran\303\247a/Til\303\241pia.java" new file mode 100644 index 0000000..aebcc52 --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/Til\303\241pia.java" @@ -0,0 +1,21 @@ +package aula20200626.herança; + +public class Tilápia extends Animal implements Vertebrado { + + @Override + public void locomover() { + System.out.println("Tilápia nadando!"); + } + + @Override + public void alimentar() { + System.out.println("Tilápia comendo plânctom"); + + } + + @Override + public void formarOssos() { + System.out.println("Tilápia calcificando estruturas não cartilaginosas."); + } + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/Vertebrado.java" "b/src/main/java/aula20200626/heran\303\247a/Vertebrado.java" new file mode 100644 index 0000000..6650672 --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/Vertebrado.java" @@ -0,0 +1,8 @@ +package aula20200626.herança; + +public interface Vertebrado { + + void formarOssos(); + + +} diff --git "a/src/main/java/aula20200626/heran\303\247a/\303\201guia.java" "b/src/main/java/aula20200626/heran\303\247a/\303\201guia.java" new file mode 100644 index 0000000..5499979 --- /dev/null +++ "b/src/main/java/aula20200626/heran\303\247a/\303\201guia.java" @@ -0,0 +1,27 @@ +package aula20200626.herança; + +public class Águia extends Animal implements Vertebrado { + + @Override + public void locomover() { + System.out.println("Águia voando!"); + + } + + @Override + public void alimentar() { + System.out.println("Águia consumindo a caça!"); + } + + @Override + public void morrer() { + //super.morrer(); + System.out.println("Águia partindo para o além majestosamente."); + } + + @Override + public void formarOssos() { + System.out.println("Águia formando esqueleto."); + } + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/Aeronave.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/Aeronave.java" new file mode 100644 index 0000000..7fc1b52 --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/Aeronave.java" @@ -0,0 +1,5 @@ +package aula20200629.dúvidasFinais; + +public abstract class Aeronave implements CoisaQueDecola { + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/AppD\303\272vidasFinais.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/AppD\303\272vidasFinais.java" new file mode 100644 index 0000000..b215415 --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/AppD\303\272vidasFinais.java" @@ -0,0 +1,35 @@ +package aula20200629.dúvidasFinais; + +import java.util.ArrayList; +import java.util.Date; + +public class AppDúvidasFinais { + + public static void main(String[] args) { + Morcego m01 = new Morcego(); + Helicóptero h01 = new Helicóptero(); + Pipa p01 = new Pipa(); + + + m01.decolar(); + h01.decolar(); + p01.decolar(); + + ArrayList ambiente = new ArrayList<>(); + ambiente.add(m01); + ambiente.add(h01); + ambiente.add(p01); + for (CoisaQueDecola obj : ambiente) { + obj.decolar(); + } + + testarSeObjetosSãoIguais(new Date(), m01); + } + + private static void testarSeObjetosSãoIguais(Object obj1, Object obj2) { + System.out.println(obj1.toString() + " " + obj2.toString()); + System.out.println(obj1.equals(obj2)); + } + + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/AppHashSet.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/AppHashSet.java" new file mode 100644 index 0000000..c32d93e --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/AppHashSet.java" @@ -0,0 +1,25 @@ +package aula20200629.dúvidasFinais; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class AppHashSet { + + public static void main(String[] args) { + List listaDeCelulares = new ArrayList<>(); + for (int i = 0; i < 100; i++) { + listaDeCelulares.add(new Celular(112554L, "Samsung", "Galaxy S9")); + } + System.out.println("tamanho da lista: " + listaDeCelulares.size()); + + Set conjuntoDeCelulares = new HashSet<>(); + for (int i = 0; i < 100; i++) { + conjuntoDeCelulares.add(new Celular(112554L, "Samsung", "Galaxy S9")); + } + System.out.println("tamanho do conjunto: " + conjuntoDeCelulares.size()); + + } + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/Brinquedo.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/Brinquedo.java" new file mode 100644 index 0000000..fedd5d6 --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/Brinquedo.java" @@ -0,0 +1,5 @@ +package aula20200629.dúvidasFinais; + +public class Brinquedo { + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/Celular.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/Celular.java" new file mode 100644 index 0000000..ccf3a1f --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/Celular.java" @@ -0,0 +1,53 @@ +package aula20200629.dúvidasFinais; + +import java.util.Random; + +public class Celular { + + private long númeroDeSérie; + private String fabricante; + private String modelo; + + public Celular(long númeroDeSérie, String fabricante, String modelo) { + this.númeroDeSérie = númeroDeSérie; + this.fabricante = fabricante; + this.modelo = modelo; + } + + public long getNúmeroDeSérie() { + return númeroDeSérie; + } + + public String getFabricante() { + return fabricante; + } + + public String getModelo() { + return modelo; + } + + + @Override + public int hashCode() { + return new Long(númeroDeSérie).hashCode(); +// Random r = new Random(); +// return (int) (r.nextInt() * System.currentTimeMillis()); + } + + public boolean equals(Object outro) { + if (outro == null) { + return false; + } + if (!(outro instanceof Celular)) { + return false; + } + Celular auxOutro = (Celular) outro; + if (this.númeroDeSérie == auxOutro.númeroDeSérie) { + return true; + } + return false; + } + +} + + diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/CoisaQueDecola.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/CoisaQueDecola.java" new file mode 100644 index 0000000..6944df8 --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/CoisaQueDecola.java" @@ -0,0 +1,7 @@ +package aula20200629.dúvidasFinais; + +public interface CoisaQueDecola { + + void decolar(); + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/CoisaQuePousa.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/CoisaQuePousa.java" new file mode 100644 index 0000000..e8767ee --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/CoisaQuePousa.java" @@ -0,0 +1,9 @@ +package aula20200629.dúvidasFinais; + +public interface CoisaQuePousa { + + default void pousar() { + System.out.println("Pouso padrão;"); + } + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/Helic\303\263ptero.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/Helic\303\263ptero.java" new file mode 100644 index 0000000..89a8204 --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/Helic\303\263ptero.java" @@ -0,0 +1,11 @@ +package aula20200629.dúvidasFinais; + +public class Helicóptero extends Aeronave { + + + public void decolar() { + System.out.println("Helicóptero decolando..."); + } + +} + diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/Morcego.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/Morcego.java" new file mode 100644 index 0000000..630de86 --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/Morcego.java" @@ -0,0 +1,9 @@ +package aula20200629.dúvidasFinais; + +public class Morcego extends Vertebrado implements CoisaQueDecola { + + public void decolar() { + System.out.println("Morcego decolando..."); + } + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/Pipa.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/Pipa.java" new file mode 100644 index 0000000..adcc7df --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/Pipa.java" @@ -0,0 +1,14 @@ +package aula20200629.dúvidasFinais; + +public class Pipa extends Brinquedo implements CoisaQueDecola, CoisaQuePousa { + + public void decolar() { + System.out.println("Pipa decolando..."); + } + + public void pousar() { + System.out.println("Pipa pousando..."); + } + + +} diff --git "a/src/main/java/aula20200629/d\303\272vidasFinais/Vertebrado.java" "b/src/main/java/aula20200629/d\303\272vidasFinais/Vertebrado.java" new file mode 100644 index 0000000..c3008dd --- /dev/null +++ "b/src/main/java/aula20200629/d\303\272vidasFinais/Vertebrado.java" @@ -0,0 +1,5 @@ +package aula20200629.dúvidasFinais; + +public class Vertebrado { + +}