Guia de Desenvolvimento Java (Reparado)
Guia de Desenvolvimento Java (Reparado)
Sobre o autor
ilustração lavrador.
Introdução
Relatório apresentado para a matéria de linguagem orientada a objetos
do curso de engenharia de software, utilizando a linguagem de
programação Java.
O que é o JAVA?
JVM
Endereço 1
Mercado Endereço 2
Carteiros
Livre(compra) Endereço 3
Versões do Java.
sobre esse capítulo), aqui vai uma breve linha do tempo sobre todas as
versões java até o momento das mais antigas até a mais recente,
incluindo uma breve explicação sobre as versões em LTS(Ve site da
Oracle).
3. `System.out.println("Hello, World!");`
4. `}`
5. `}`
1. Variáveis Primitivas:
As variáveis primitivas armazenam diretamente o valor dos dados e são
geralmente usadas para armazenar tipos de dados simples. Existem 8
tipos primitivos em Java:
Nessa tabela podemos ver uma breve distinção do que seria uma
variável em nosso sistema,bem que tal vermos isso em java?
Bem agora que nosso exemplo já está visível para você leitor, vamos
para a explicação do nosso código, tomei a liberdade para separar o
código em linhas para que possa facilitar o seu entendimento.
```
Meu nome é João eu tenho 30 sou solteiro? false
```
Casting no java.
DADO INICIAL
17
Dado Final
// casting implícito
int numInteiro = 10;
long numLongo = numInteiro;
System.out.println(numLongo);
double a =10.5d;
int b = (int) a;
System.out.println(b);
Entrada de dados.
Em Java, a entrada de dados é a forma pela qual um programa interage
com o usuário, permitindo que informações sejam fornecidas para o
programa durante a execução. Existem várias maneiras de realizar a
entrada de dados em Java, sendo as duas mais comuns:
reader.close();
}
}
5. `if (horas < 12) { ... }`: Aqui, começa a estrutura condicional. Se o
valor de `horas` for menor do que 12, o bloco de código dentro do `if`
será executado.
7. `else if (horas < 18) { ... }`: Se a condição do `if` for falsa (ou seja,
`horas` não for menor que 12), o programa verificará se `horas` é menor
do que 18. Se for verdade, o bloco de código dentro do `else if` será
executado.
switch (expressao) {
case valor1:
// Bloco de código a ser executado se
expressao for igual a valor1
break;
case valor2:
// Bloco de código a ser executado se
expressao for igual a valor2
break;
// ... outros casos possíveis ...
default:
// Bloco de código a ser executado se
nenhum dos casos anteriores for correspondido
24
Exemplo:
switch (data) {
case "Domingo":
System.out.println("Domingo");
break;
case "Segunda":
25
System.out.println("Segunda");
break;
case "Terça":
System.out.println("Terça");
break;
case "Quarta":
System.out.println("Quarta");
break;
case "Quinta":
System.out.println("Quinta");
break;
case "Sexta":
System.out.println("Sexta");
break;
case "Sábado":
System.out.println("Sábado");
break;
default:
System.out.println("Data inválida");
26
break;
Operador Ternário.
Analogia:
Imagine que o operador ternário é como a personalidade dividida do
vilão Duas-Caras, Harvey Dent, um ex-promotor de Gotham City que,
após um acidente com ácido, desenvolveu uma dupla personalidade.
Uma metade de seu rosto ficou desfigurada e caótica, enquanto a outra
permaneceu intacta e nobre.
1. A condição:
Assim como a personalidade dividida do Duas-Caras, o operador
ternário tem uma "condição" que é verificada. Em Java, essa condição é
uma expressão ou uma avaliação que resulta em um valor booleano
(verdadeiro ou falso). Isso equivale à dualidade do Duas-Caras.
28
2. A primeira opção:
Quando a condição seja verdadeira, o operador ternário retorna o
primeiro valor, que representa a metade do rosto do Duas-Caras que
permaneceu intacta e nobre. É como se a justiça e a integridade
estivessem prevalecendo.
3. A segunda opção:
Quando a condição é falsa, o operador ternário retorna o segundo valor,
que representa a metade do rosto desfigurado e caótico do Duas-Caras.
Essa parte corresponde à corrupção e à maldade.
```
String duasCaras =("Bom" == "Bom") ? "Sim" : "Não";
System.out.println(duasCaras);
DEBUG:
Estruturas de Repetição.
Exemplo:
Exemplo:
int contador = 0;
while (contador < 5) {
System.out.println("Contador: " + contador);
contador++;
}
Exemplo:
int i = 0;
do {
System.out.println("Valor: " + i);
i++;
} while (i < 5);
BitWise.
Exemplo:
Saída:
```
AND: 1
OR: 7
XOR: 6
Complemento: -6
```java
String str1 = "Olá";
String str2 = "Mundo";
33
Essas são apenas algumas das muitas operações que podem ser
realizadas com strings em Java. A classe `String` possui vários outros
métodos úteis para manipular e transformar strings.
Funções em java.
import java.util.Scanner;
sc.close();
}
OOP em Java.
1. Herança e Genes:
Na genética, Mendel descobriu que características são transmitidas
através de genes de uma geração para a próxima. Os genes podem ser
vistos como "classes base" que contêm informações hereditárias. Em
um sentido mais abstrato, as características específicas (atributos e
métodos) que uma planta ou animal herda podem ser comparadas aos
37
class Animal {
void fazerBarulho() {
System.out.println("Animal faz barulho");
}
}
Definição de Object.
Toda classe Java é, em essência, uma subclasse de `Object`. Mas o
que é exatamente um objeto? Um `Object` é nada mais do que uma
instância de uma classe. Em outras palavras, um objeto é uma
39
package entities;
public class Carro {
Logo em seguida criamos uma instância desse Objeto Carro na classe Principal:
import entities.Carro;
Membros Estáticos.
public Exemplo() {
contador++; // Incrementa o contador sempre que um novo objeto
é criado
}
}
41
Orientação a objetos.
1-Constutor
O construtor representa uma operação especial de uma classe que
assume a responsabilidade pela inicialização de um objeto no
instante de sua criação. É viável definir múltiplos construtores em
uma mesma classe, resultando em uma sobrecarga construtiva.
O construtor obriga você programador a fornecer alguns dados no
momento de sua instanciação, vamos a um exemplo:
42
Palavra-chave This.
Sobrecarga de métodos
A sobrecarga de método é um conceito em programação que
permite que uma classe tenha vários métodos com o mesmo
nome, mas com diferentes parâmetros. Isso possibilita que
você chame o mesmo método de maneira conveniente,
passando diferentes conjuntos de argumentos, dependendo
das suas necessidades. No código que você forneceu, há um
exemplo de sobrecarga de método na classe `Product`.
Vetores em Java.
Em matemática, um vetor é uma entidade geométrica que possui
magnitude (tamanho) e direção. Ele é representado por uma seta
que começa em um ponto e aponta em uma direção específica.
Vetores são usados para representar diversas quantidades físicas,
como deslocamento, velocidade, força, entre outras.
v=[
x
y
]
1. Boxing:
O boxing envolve converter um tipo primitivo em um objeto
correspondente. Isso é feito automaticamente pelo Java quando
você atribui um valor primitivo a uma variável de um tipo de objeto
correspondente (como `Integer`, `Double`, `Character`, etc.). Por
exemplo:
48
2. Unboxing:
O unboxing é a operação oposta do boxing, ou seja, converter
um objeto para um tipo primitivo correspondente. Isso também é
feito automaticamente pelo Java quando você atribui um objeto de
um tipo de objeto correspondente a uma variável de um tipo
primitivo. Por exemplo:
int sum = 0;
for (Integer num : numbers) {
sum += num; // Unboxing in each iteration
}
int sum = 0;
for (int num : numbers) {
sum += num;
}
Wrapper classes.
As "wrapper classes" (classes invólucro) em Java são classes que
fornecem uma forma de trabalhar com tipos primitivos como se
fossem objetos. Elas são usadas para converter tipos primitivos em
objetos e fornecer funcionalidades adicionais, como métodos
auxiliares e recursos de tratamento de nulo. Cada tipo primitivo tem
sua própria classe invólucro correspondente. Aqui estão as
principais wrapper classes em Java:
// Auto-unboxing
int extractedValue = value; // Integer é automaticamente convertido
para int
3. `String[] vect = new String[] { "Maria", "Bob", "Alex" };`: Você está
declarando e inicializando uma matriz de strings chamada `vect`
com três elementos: "Maria", "Bob" e "Alex".
4. `for (String obte : vect) {`: Aqui, você está usando um laço "for-
each". O laço irá percorrer cada elemento da matriz `vect` e atribuir
temporariamente cada elemento à variável `obte` do tipo `String`.
52
``````
Maria
Bob
Alex
`````
A partir do Java 8, a API de datas foi reestruturada e simplificada, tornando-se mais intuitiva
e poderosa. Essa nova API, baseada no JSR 310, fornece um conjunto abrangente de
ferramentas para lidar com datas, horas, fusos horários e intervalos de tempo. Ela reside no
pacote `java.time` e oferece diversas classes para diferentes necessidades:
System.out.println("D01\n" + d01);
System.out.println("D02\n" + d02);
System.out.println("D03\n " + d03);
System.out.println("D04\n" + d04);
System.out.println("D05\n" + d05);
System.out.println("D06\n" + d06);
System.out.println("D07\n" + d07);
System.out.println("D08\n" + d08);
System.out.println("D09\n" + d09);
}
}
Imutável: As classes de data e hora são imutáveis, o que significa que seus valores não
podem ser modificados após a criação. Isso garante a segurança e confiabilidade do
código.
Tratamento de fuso horário aprimorado: A API fornece ferramentas para lidar com fusos
horários de forma eficiente, evitando problemas relacionados à conversão de horário.
Suporte para diversas tarefas: A API oferece suporte para diversas tarefas comuns, como
formatação de datas e horas, comparação de datas, cálculo de diferenças de tempo e muito
mais.
54
FileReader E BufferedReader
No Java, as classes `FileReader` e `BufferedReader` são amplamente utilizadas para leitura
de arquivos de texto. Elas fazem parte do pacote `java.io` e podem ser usadas em conjunto
para uma leitura eficiente. Aqui está uma explicação sobre cada uma e como usá-las:
FileReader
A classe `FileReader` é uma classe que permite a leitura de caracteres de um arquivo. Ela é
adequada para ler arquivos de texto simples e pode ser usada diretamente para ler dados
de um arquivo.
BufferedReader
A classe `BufferedReader` é um wrapper que pode ser usado em conjunto com um
`Reader` (como `FileReader`). Ela adiciona funcionalidades adicionais, como a capacidade
55
de ler linhas inteiras de texto de uma só vez, e melhora a eficiência ao armazenar em buffer
as entradas de dados.
Exemplos de Uso
Usando FileReader
O `FileReader` pode ser usado para ler caracteres de um arquivo diretamente. Aqui está um
exemplo básico:
import java.io.FileReader;
import java.io.IOException;
- FileReader: é útil para leitura de caracteres individuais, mas não é muito eficiente para
leitura de grandes quantidades de dados.
- BufferedReader: melhora a eficiência da leitura ao usar um buffer e fornece métodos
convenientes como `readLine()` para ler linhas inteiras de texto.