Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

Introdução: O que são e para que servem as Classes e Objetos

O conceito de orientação a objetos, é, sem dúvida, o mais importante em Java.
E é por isso que ensinaremos desde o início, em nosso curso de Java.

Por ser um conceito um pouco abstrato, é normal que demore um pouco até entender tudo. E até entender bem, vai demorar mais ainda.
Porém, vamos ensinar, ao longo de vários tutoriais, divididos em várias seções, estes tão importantes detalhes.

Nesta parte, como só vimos o básico e laços da programação Java, vamos apenas ensinar como declarar as classes, instanciar os objetos (com e sem construtores) e como usar testes condicionais dentro das classes que criamos.
Isso dará uma idéia do que são classes e objetos, e é importante que se habitue a estas idéias.

O que são Classes e Objetos em Java

Como havíamos comentado em nosso artigo com a explicações sobre o primeiro programa que criamos, classes podem ser vistas como abstrações ou definições maiores das coisas e objeto já é algo mais real, mais concreto, é um elemento ou tipo daquela classe.
Usando essas definições, é realmente difícil entender os conceitos, por isso vamos usar exemplos.

Por exemplo, podemos ver "Pessoa" como uma classe. É uma classe que representa seres humanos, que possuem cabeça, coração, cérebro etc. É uma generalização maior.
Podemos declarar você, caro leitor, como um objeto dessa classe, com seu nome e características específicas de uma "Pessoa". Você pertence a classe "Pessoa". Eu também, pois possuímos cabeça, coração, cérebro etc.
Nós temos essas características gerais, que todos da classe "Pessoa" possuem. Ou seja, em Java, dizemos que somos instâncias da classe "Pessoa".


Utilidade das Classes e Objetos em Java

Esse tipo de representação vai nos ajudar muito em programação Java.

Por exemplo, imagine que você foi contratado para criar um aplicativo para uma empresa - em Java, claro.
Você tem que cadastrar os milhares de funcionários da empresa.
É claro que você não vai declarar milhares de strings para armazenar o nome de cada um, nem de inteiros para armazenar seus números nem de floats para armazenar seus salários.
Seria humanamente impossível fazer isso.

Agrupar coisas semelhantes

Aí que entra a vantagem da programação orientada a objetos. Podemos ver todos esses funcionários de uma mesma maneira: como a classe Funcionario.

O que a classe "Funcionario" tem em comum?
Tem um nome, uma idade, uma data de contratação, um salário, um setor em que trabalham e outras coisas específicas da empresa.

Pronto.
Você pode ver essa classe como um tipo de dado.
Assim como 'int' ou 'float', agora existe o tipo 'Funcionario'. Toda vez que entrar alguém novo na empresa, você declara esse elemento como fazendo parte do tipo 'Funcionario'. Ou seja, estará criando um objeto dessa classe.
O objeto, diferente da classe, é algo mais específico, ele que terá as informações pessoais de cada funcionário.

Crie uma vez, use quantas vezes quiser


A grande vantagem desse tipo de 'visão', é que, ao declarar a classe, você declara dentro dela os tipos: string, float, int etc, que estão dentro da classe.

Então, quando for criar um objeto, automaticamente esses dados estarão criados!
Aí que reside a beleza do Java e da orientação a objetos. É muito, mas muito útil e prático. É um novo jeito de pensar e ver o mundo. Dizemos que é um tipo de paradigma de programação diferente.

Altere uma parte do código, e a mudança se propagará em todo o código

Ok, você criou seu aplicativo usando a classe "Funcionario".

Porém, a pessoa que te contratou - que muitas vezes não são da área de TI - esqueceu de te informar que os funcionários devem ter uma informação no cadastro: se possuem carro ou não.
E aí? Alterar tudo? Começar do zero?

Claro que não. Simplesmente vá na classe e coloque esse atributo (informação), e automaticamente todos os objetos passarão a ter esse dado, "carro".
Então é só pedir para os funcionários preencherem esse dado no seu aplicativo de cadastro.

Classe à parte, vida à parte



Uma coisa interessante que a programação orientada a objetos nos proporciona é a divisão das partes do programa. Dois programadores podem programar duas classes de forma totalmente independente e fazer com que elas funcionem perfeitamente.
Coisa que em outros paradigmas de programação é quase impossível.

Por exemplo, você criou a classe "Funcionario".
Nessa classe você precisa a informação do salário de cada funcionário, porém você não tem acesso aos detalhes financeiros da empresa. Ora, nem precisa e nem deve ter, é algo mais restrito.

Outro programador, responsável pelo setor financeiro, pode ter criado a classe "Salario" que recebe os dados de cada pessoa, sua posição na empresa, bônus, horas extras etc etc, e te dá somente o resultado final: o número. Esse dado é o que você vai usar na sua classe "Funcionario".

Isso todo pode ser feito de uma maneira totalmente eficiente, segura e independente, tanto por você como pelo programador que fez a outra classe.
A única troca de informação é que você pega um float dele e ele pega o nome do seu funcionário ou código dele da empresa.

O mais importante disso é: em nenhum momento foi necessário um ver o código do outro!
Na hora de trabalhar, isso nos diz muito em termos de rendimento!

Como saber quando usar Classes e Objetos em Java

Como você pode notar, através dos exemplos dos Carros, das Pessoas e dos Funcionários, as Classes são nada mais que um grupo de informações. Sempre que quiser usar essas informações, declare um Objeto daquela classe.
Ou seja, sempre que quiser generalizar ou criar um grupo com características parecidas, não tenha dúvida, use Classe e Objetos.

Em um jogo, Worms Armageddon ou Counter-Strike, por exemplo. Existem vários jogadores. Ora, eles são parecidos, tem semelhanças e características em comum. Não perca tempo declarando seus atributos individualmente, use classes e objetos.

Na verdade, em Java, tudo são classes e objetos, então não há muito essa preocupação.
Nosso programa principal, que contém a 'main()', é uma classe. Para receber dados, usamos a classe Scanner.
Em C, não existe Orientação a Objetos.
Em C++, você escolhe se usa ou não.

Adiante, veremos que uma classe pode se parecer com uma e outra, pegar 'emprestado' detalhe de outras, implementar ou estender outras.
Existem vários recursos para serem usados nas Classes, inclusive de segurança, que permitem que alguns objetos tenham acesso a alguns dados, outros não.

Recursos gráficos: por exemplo, as janelas dos aplicativos Java, botões, menu e tudo mais são classes.
Como dissemos, Java gira em torno de orientação a objetos, e Java é uma linguagem de programação riquíssima e ilimitada. Logo, o que é possível fazer com as classes e objetos também é bem vasto.

48 comentários:

Unknown disse...

Adooooooooogo essas aulas!!!

Anônimo disse...

muito bom....gostandoooo

Anônimo disse...

legal as aulas......

Anônimo disse...

Muito bom.... ensina melhor q alguns professores

Anônimo disse...

Explica bem mesmo! to curtindo!

Marcelo Souza disse...

Suas aulas são magníficas!
É maravilhoso ver alguém com interesse em compartilhar tamanho a sabedoria. dificilmente encontra-se alguém de grande conhecimento querendo passa-lo. parabéns mesmo!

Unknown disse...

Muito bom, faz com que este novo paradigma seja entendido de uma forma super tranquila.

Suportes: disse...

Cara, to gostando muito dessas aulas!!!!! Show de bola Java

Anônimo disse...

Estou aprendendo java com o curso de vocês parabéns é ótimo o melhor que eu achei

Anônimo disse...

Parabéns! Estas aulas teem sido de grande valia para mim, gostaria de manter contato com outras pessoas que como eu estão iniciando no aprendizado de Java.
claudioglopes1@gmail.com

Adilson disse...

realmente, as aulas são ótimas,da para aprender bem estou começando a entender melhor os conceitos de classes e objetos que me confundiam muito. Valeu!!!

Adilson disse...

Realmente as aulas são ótimas estou começando a entender melhor os conceitos de classes e objetos. Valeu!!!

Unknown disse...

Claro e objetivo, sem perder o humor! É assim que toda aula de programação deveria ser! Parabéns!

Unknown disse...

Gostei muito explica detalhadamente...
Assim fica bem mais fácil compreender.

Unknown disse...

Gostei muito bem mais fácil de entender.

Anônimo disse...

Preciso de um professor assim na minha universidade. Parabéns pela didática genial e obrigado.

Anônimo disse...

Cara, esse site ensina bem melhor do q a minha professora da facu ¬¬(só q ela ensina C)

kim Ruffer disse...

Tô aprendendo muito com seu site. Parabéns.

Anônimo disse...

Parabens continue com esta iniciativa maravilhosa, sua metodologia é muito boa.
Obrigado

Ademir Di Paula disse...

Por causa da metodologia desse professor aprendi Java e me especializei, criei recentemente um aplicativo e vendi pra uma empresa na China por 300 mil dolares; Parabens, sua didática é fantástica!

Mauricio Leites disse...

/\ e já doou quanto lá pros caras do Java Progressivo? kkkk

Scooby DownloadS disse...

/\
/\
realmente, ademir 1% ja seria um otimo incentivo.
JP parabens, e muito obrigado por compartilhar tanto conhecimento.

Cerri disse...

Cada dia que passa gosto mais desse curso. Parabens

Karina Hirata disse...

Até aqui tem sido muito legal.Estou ansiosa para aprender mais =)

Anônimo disse...

Impressionante como um curso de 2012 ainda nos fascina. Parabéns a todos. Wagner Gabriel

Curso Java Progressivo disse...

Olá Wagner, grato pelo elogio!

Então, o curso COMEÇOU em 2012, mas até hoje publicamos material nele...algumas vezes mais, as vezes menos, pois temos outros projetos (todos independentes).

Mas não há a necessidade de se preocupar com isso de idade do curso, pois os principais conceitos se mantém o mesmo desde a criação da linguagem, na década de 90.

O que se aprende em linguagem C hoje, por exemplo, é praticamente o mesmo de quando foi inventada, na década de 70. E Assembly também, sendo até mais antiga.

Quando surgem atualizações nas linguagens, é para agregar, somar novas funcionalidade, o que se aprendeu antes vai continuar servindo e sendo utilizado.

Abraços.

Anônimo disse...

Muito bom este curso.
Pena que os vídeos já não estão funcionando mais. Foram retirados do curso e do You Tube.
Abraços:
Peregrino

Unknown disse...

O javaprogressivo.net está sendo minha principal ferramenta de estudos. Dei uma olhada em alguns livros e tbm em algumas video aulas, mas o lugar q fala a minha língua é aqui!

Anônimo disse...

No ensino de Java a perfeição progressiva é aqui no Javaprogressivo.

Good my master!

Anônimo disse...

Aprendi mais com essas aulas do que com meu professor da facul! Site muito bom. Parabéns aos envolvidos.

Anônimo disse...

Tenho uma cadeira de Java na faculdade, mas posso dizer que por aqui é bem mais fácil de aprender!

Anônimo disse...

Parabéns pelo site, muito melhor q muito site ou apostila que vi pela net!!!

Unknown disse...

Muito bom. Eu não faço informática na faculdade, mas meu curso (Geofísica) exige um nível de programação elevado. Andei a procura de aprende a programar em uma linguagem, comecei pelo Python e MatLab, mas estou a gostar das vossas aulas. Vou até ao fim do curso. Parabéns!

Anônimo disse...

Estou fostando muuuuuuuuito das aulas!!!!
Parabens pela iniciativa!

RCB disse...

Cara, você é o máximo... as suas classes são ótimas. Quero largar o meu trabalho e dedicar-me à programação .. um bem haja.. abraço

Laércio Aristides disse...

Percebi a minha duvida mas devia de mostrar exemplos Práticos fixa Fácil para quem está começando a programar em Java

Unknown disse...

Obrigado pelo ensinamento, estava vendo alguns videos aulas sobre classe, o que acontece é que o instrutor preocupava-se acabar de construir a classe e com seus respectivos objectos do que explicar detalhadamente o comportamento ou funcionamento dos mesmos.

Obrigado pela Aula, Benjamim, diretamente de Luanda - Angola.

Delkan disse...

Muito bom o conteúdo! Obrigado pela boa vontade de compartilhar seu conhecimento!

Unknown disse...

As aulas sao muito boas, estava ficando desesperado na faculdade pq estava com muita dificuldade para entender as cosas, mas aqui a didatica é muuuuuuuuuuuuuuuuuuto boa.

So uma observaçao... os links dos videos da universidadeXTI nao estao funcionando pq na epoca foi retirado do youtube, mas ja foram postados novamente. Poderiam fazer as atualizaçoes dos links.

Sem mais delongas, parabéns pelo trabalho.

Gigi disse...

Obrigada pelo carinho e dedicacao com que voce faz estas aulas. sao as melhores explicacoes que encontrei na web. <3

Unknown disse...

Passei muito, mais muito tempo mesmo procurando algum curso particular de java que valesse a pena, cheguei até a pagar dois e desisti pelo fato de eu ser uma pessoa extremamente exigente nesse sentido de achar algo que tenha aquela magia de didática que faz com que a pessoa aprenda de verdade! Coisa que só achei aqui no java progressivo! E ainda é grátis! Finalmente não vou reprovar mais em POO! Obrigado equipe do java progressivo.

fiumedellavita disse...

Muito bom estas aulas! Parabéns!

Antonio disse...

Muito bom mesmo, parrabens....

Lucas Torres disse...

Está me ajudando muito!!!!!1

Unknown disse...

Cara, eu estudei: Blitz3D, C, C++ e não tava entrando na cabeça as aulas de C++, agora estudando aqui o Java do JavaProgressivo to entendendo tudo, ficando claro e facil tanto o Java quanto o C++.
òtimas aulas progressivonet PARABENS e obrigado.

Anônimo disse...

Muito obrigado por disponibilizar estas aulas !! Parabéns e continue com um trabalho excelente

Unknown disse...

hoje estou aprendendo de verdade java ! grato !

eugénio disse...

Tenho observado este site, e ao mesmo os comentários do pessoal. Esta sendo interessante !!!

Contribuir com o Java Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo


Tutoriais de Java