Java
Tipos primitivos
tipo primitivo não recebe metodos* dados primitivos - int, float, double, float, char, boolean,
short objetivo da aula - Criar um Ninja naruto
String nameNinja = "Naruto"; // string é um dado não primitivo
int age = 16; // int tem valor limitado
char initial = 'N';
double height = 1.64;
boolean aliveOrDead = true;
Long bankBalance = 22222222456L; // Long comporta números muito altos
ShortCuts
ShortCuts
(psvm -> public static void main)
(sout -> [Link]())
(alt insert -> para criar um construtor automaticamente)
Dados não primitivos
DADOS NÃO PRIMITIVOS: String, Array, Class, enum
objetivo: criar um ninja e atribuir metodos a ele
// DA PARA ACESSAR METODOS EM DADOS NÃO PRIMITIVOS
String nome = "Naruto Uzumaki";
String nomeMaiusculo = [Link](); // vai colocar tudo em MAIUSCULO
[Link]("Esse nome esta em UpperCase: " + nomeMaiusculo);
[Link]("Esse nome esta normal: " + nome);
String aldeia = "Aldeia da Folha";
String aldeiaEmCaixaBaixa = [Link](); // deixa em minusculo
[Link](aldeiaEmCaixaBaixa);
String nome2 = " Sasuke Uchiha ";
String modificandoNome2 = [Link](); // o strip funciona igual o
strip do python
[Link](modificandoNome2);
int idade = 21;
String aldeia2 = "Aldeia da folha";
String renegado = [Link]("Aldeia", "Renegado"); // mesma coisa
com o replace funciona, (valor que vc quer mudar, novo valor)
[Link](renegado);
String nome3 = "Kakashi";
int tamanhoNome = [Link](); // aqui pega o tamanho da string
[Link](tamanhoNome);
String nome4 = "Sakura Haruno";
// [Link](); equals serve para comparar uma string com outra, equalsIgnoreCase
serve para ignorar a Caixa alta ou baixa
// String testeSplit = [Link](String);
Condicinionais
IF E ELSE
// if (condicao) {
// Faça isso
// } else {
// Faça isso
// }
// if (condicao) {
// Faça isso
// } else if (condicao) {
// ou faça isso
// } else {
// senão Faça isso
// }
SWITCH CASE
SwitchCase: Que servem para gerar casos especificos
switch (ninja) {
case 1:
[Link]("Vc escolheu Naruto, Rasengaan!!");
break;
case 2:
[Link]("Vc escolheu Sasuke, Chidorii!!");
break;
case 3:
[Link]("Vc escolheu a Sakura, Janaraaa!!");
break;
case 4:
[Link]("Vc escolheu Kakashi ninja copiador!!");
break;
default:
[Link]("Escolha entre 1 ate 4");
break;
OPERADOR TERNARIO
variavel = (condicao) ? verdadeiro : falso;
mensagem = (statusCode == 200) ? "Ok" : "Erro";
Arrays
// fazendo array com strings
// new String[3] serve para criar quanto de memoria
String[] ninjas = new String[3];
ninjas[0] = "Naruto Uzumaki";
ninjas[1] = "Sasuke Uchiha";
ninjas[2] = "Sakura Haruno";
[Link](ninjas[0]);
[Link](ninjas[1]);
[Link](ninjas[2]);
// para adicionar mais nomes tem que disponibilizar mais espaço no array
ninjas = new String[4];
ninjas[3] = "Hinata Hyuuga";
[Link](ninjas[3]);
// para adicionar mais nomes tem que disponibilizar mais espaço no array
ninjas = new String[4];
ninjas[3] = "Hinata Hyuuga";
[Link](ninjas[3]);
// se printar o array sem um ele tiver um objeto na memoria (algo no indice especifico) se for
int vai ser 0, String vai ser null, boolean vai ser false, double vai ser 0.0 e etc
// redeclarar
ninjas[0] = "Boruto Uzumaki";
[Link](ninjas[0]);
// REDECLARAR O ARRAY <- VAI SUBSTITUIR TODOS OS DADOS ANTERIORES
[Link]("-- HOKAGES --");
ninjas = new String[7];
ninjas[0] = "Hashirama Senju";
ninjas[1] = "Tobirama Senju";
ninjas[2] = "Hiruzen Sarutobi";
ninjas[3] = "Minato Namikaze";
ninjas[4] = "Tsunade Senju";
ninjas[5] = "Kakashi Hatake";
ninjas[6] = "Naruto Uzumaki";
for (String n : ninjas) {
[Link](n);
}
ARRAYS MULTIDIMENSIONAIS
String[][] ninjasEAldeias = new String[3][3];
ninjasEAldeias[0][0] = "Konoha";
ninjasEAldeias[0][1] = "Naruto";
ninjasEAldeias[0][2] = "Uzumaki";
ninjasEAldeias[1][0] = "Sasuke";
ninjasEAldeias[1][1] = "Uchiha";
ninjasEAldeias[1][2] = "Renegado";
ninjasEAldeias[2][0] = "Sakura";
ninjasEAldeias[2][1] = "Haruno";
ninjasEAldeias[2][2] = "Konoha";
// [Link](ninjasEAldeias[0][1]);
// [Link](ninjasEAldeias[0][2]);
// [Link](ninjasEAldeias[0][0]);
// em arrays 2D ou multidimensionais vc usa for each duplo para imprimir for (String[] p :
ninjasEAldeias) {
for (String n : p) {
[Link](n);
}
[Link](); // <- quebra de linha
}
LOOPS
WHILE
// while (condição) { //enquanto
// //bloco de código
// }
int numeroClones = 0;
int numeroMaximoDeClones = 40;
// while (numeroClones <= numeroMaximoDeClones) {
// [Link]("O Naruto fez um clone! " + numeroClones);
// numeroClones++;
// }
FOR
// for (inicialização; condição; incremento) {
// //bloco de código
// }
for (int i = 0; i <= numeroMaximoDeClones; i++) {
[Link]("O Naruto fez um clone! " + i);
}
FOR EACH
// for each (tipo variável : coleção/array) {
// //bloco de código
// }
// serve para percorrer arrays e coleções
String[] ninjas = {"Naruto", "Sasuke", "Sakura", "Kakashi"};
for (String ninja : ninjas) {
[Link]("Ninja: " + ninja);
}
PROGRAMAÇÃO ORIENTADA A OBJETOS
Ninja Naruto = new Ninja(); // Naruto é o objeto, Ninja é a classe base
Uzumaki Naruto = new Uzumaki(); // Naruto é o objeto, Uzumaki é a classe filha da classe
Ninja.
[Link] = "Naruto Uzumaki";
[Link] = 18;
[Link] = "Aldeia da Folha";
[Link]();
package java10x.nivel_intermediario;
// EXTENDS É PARA FAZER A HERANÇA ENTRE NINJA E UZUMAKI
public class Uzumaki extends Ninja {
public void ModoSabioAtivado() {
[Link]("Meu nome é " + nome + " Ativei o modo sabio!");
}
package java10x.nivel_intermediario;
// molde classe // classe PAI
public class Ninja {
String nome;
String aldeia;
int idade;
// o metodo void não retorna valor nenhum!
// criando um metodo publico personalizado// public void
SharinganAtivado() {
// [Link]("O Sharingan de " + nome + " ativou!");
// }
// metodo String vai ter que retornar uma String obrigatoriamente!
public String EuSouUmNinja() {
return "Oi eu sou um ninja!";
}
// metodo int vai ter que retornar um int obrigatoriamente!
public int anosParaSeTornarHogake(int idadeMinima) {
return idadeMinima - idade;
}
INTERFACE
package java10x.nivel_intermediario.ex05;
public interface Funcionario {
void calcularSalario();
}
package java10x.nivel_intermediario.ex05;
OVERRRIDE É PARA POLIMORFISMO PARA A CLASSE FILHA HERDAR O METODO DA
CLASSE PAI E TER SUAS PROPRIAS CARACTERISTICAS
public class FuncionarioCLT implements Funcionario{
@Override
public void calcularSalario() {
[Link]("Salario de CLT é por final do mês");
}
}
ARRAYLIST BASICO
List funcionarios = new ArrayList<>();
Funcionario pj = new FuncionarioPJ();
[Link]();
Funcionario clt = new FuncionarioCLT();
[Link]();
[Link](new FuncionarioPJ());
[Link](new FuncionarioCLT());
for (Funcionario f : funcionarios) {
[Link]();
}
}