| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 15:45:58
|
truck1n
Java Ninja
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline
|
Boa tarde galera,
estou com uma dúvida com o modificar abstract, estou lendo estudando o JAVA e estou com com umas dúvidas
essa é minha classe abstract, então sempre que tenho uma classe abstract tenho que ter pelo menos 1 metodo ou váriavel abstract, correto?
essa é minha classe que extende a classe abstract, então tenho que criar um metodo com o mesmo nome do metodo da classe abstract?
Estou meio confuso se alguem puder ajudar! =D
|
Get Rich Or Die Trying |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:04:18
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Toda classe abstract tem que ter pelo menos um método abstrato.
Não é permitido instanciar objetos de uma classe abstrata (claro, pois existe pelo menos um método que não possui implementação, aquele que é abstrato)
Uma classe que estende uma classe abstrata, se esta não for abstrata também, deve forneceer a implementação do(s) método(s) abstrato(s), "sobrescrevendo" o(s) método(s) abstrato(s) herdado(s).
Se a classe que a extende também for abstrata, esta pode fornecer ou não implementação para os métodos herdados, sendo que a primeira clase concreta (não abstrata) que herdar esse hierarquia tem que obrigatóriamente fornecer a implementação dos métodos abstratos herdados.
Ajudou?
Até mais!
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:34:26
|
truck1n
Java Ninja
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline
|
ajudou, sim agora eu estou tendando compreender ...
Eu posso instaciar a classe mas nao os metodos pelo que eu estou entendendo, um exemplo é o JFrame eu instacio a classe mas nao instacio nenhum objetivo pq quando eu instanciei ele vem na Hierarquia da classe, correto?
estamos caminhando! =D
|
Get Rich Or Die Trying |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:42:25
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
você não pode instanciar nenhuma classe abstrata..... você pode instanciar uma classe concreta que extenda a classe abstrata para usar os métodos e não instaciar a classe abstrata diretamente.
[]'s
entendeu ?
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:45:38
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Você só pode instanciar (criar objetos) de classes NÃO abstratas, ou seja classes concretas. Métodos não são instanciados, eles fazem parte de uma instância.
E caso estes sejam estáticos estes pertencem a classe e não a instância, apesar de cada instância poder acessar normalmente o método estático de sua classe.
Caso você não saiba, métodos estáticos são métodos que existem independentemente de existir algum objeto da classe a qual ele pertence.
Instanciar = Criar = Criar um novo objeto = usar o operador new (na maioria dos casos )
Digo na maioria dos casos pois para criar um objeto da classe String por exemplo, vc não precisa necessariamente usar um construtor explícito, bstante somente fazer String s = "algumaCoisa" q o compilador já faz o serviço para você.
Até mais!
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:48:41
|
truck1n
Java Ninja
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline
|
ahhh compreendi,
o unica objetivo da classe concreta é deixar as coisas semi prontas pelo que eu to entendendo...
igual uma construção o cimento ja vem pronto nos caminhões
uhmmmm compreendi, crio um classe Predio extendo ela para Construção que lá eu tenho o metodo cimento que já vem prontinho eu so preciso fazer algumas implementações?
Pelo que to vendo tenho que estudar OO ? o que acham?
Abraços!
|
Get Rich Or Die Trying |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:53:07
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
seria ótimo estudar conceitos de OO, e falando a respeito do seu post: a classe abstrata ajuda você a definir seus objetos...
[]'s
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:53:36
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Hehehehe vc está confundindo os conceitos..
Concreto = que pode ser criado
Abstrato = modelo que deve ser seguido
Hehehehehe é melhor estudar sim para fazer com que os conceitos fiquem mais claros... Aprender Java sem POO não é uma boa prática, pois como Java é uma linguagem OO é ineterssante que você saiba como tudo é feito e como as coisas funcionem.
Num vai fazer que nem o pessoal do Delphi hein (a maioria é claro)... Programar estruturado numa linguagem OO...
Falow!
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:53:43
|
truck1n
Java Ninja
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline
|
Compreendi.
Você só pode instanciar (criar objetos) de classes NÃO abstratas, ou seja classes concretas. Métodos não são instanciados, eles fazem parte de uma instância.
E caso estes sejam estáticos estes pertencem a classe e não a instância, apesar de cada instância poder acessar normalmente o método estático de sua classe.
Caso você não saiba, métodos estáticos são métodos que existem independentemente de existir algum objeto da classe a qual ele pertence.
Instanciar = Criar = Criar um novo objeto = usar o operador new (na maioria dos casos )
Digo na maioria dos casos pois para criar um objeto da classe String por exemplo, vc não precisa necessariamente usar um construtor explícito, bstante somente fazer String s = "algumaCoisa" q o compilador já faz o serviço para você.
Até mais!
alberto_ribeiro
Post 05/12/2006 16:42:25 Assunto: Re:Modificar: Abstract
Code:
você disse: "Eu posso instaciar a classe mas nao os metodos pelo que eu estou entendendo"
você não pode instanciar nenhuma classe abstrata..... você pode instanciar uma classe concreta que extenda a classe abstrata para usar os métodos e não instaciar a classe abstrata diretamente.
[]'s
entendeu ?
Vlw to estudando aqui ai tem vezes que me aparece umas dúvidas! rs
Vlw!
então eu estou fazendo a coisa certa no meu código acima?
|
Get Rich Or Die Trying |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 16:56:40
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
só uma coisinha nome de classe por padrão no Java inicia com letra em maiúsculo..
abstract class Abs.....
public class Recebe extends Abs....
em uma classe abstrata procure colocar somente o que será abstrato mesmo e na classe que extender ela você adiciona os outros métodos...
particulamente eu prefiro assim... mas alguém pode dizer outro ponto de vista ????
[]'s
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 17:24:31
|
truck1n
Java Ninja
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline
|
alberto_ribeiro, Seguindo suas dicas da uma olhada agora!
Classe Abstrata
Classe Main
vlw galera, agora vou dar uma olhada lá no mundo OO
para ver umas dicas!!! mas já deu uma clareada! vlwww
|
Get Rich Or Die Trying |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 17:44:53
|
Sami Koivu
Virtual Machine Man
![[Avatar]](/images/avatar/a4d8e2a7e0d0c102339f97716d2fdfb6.jpg)
Membro desde: 16/09/2004 09:49:27
Mensagens: 574
Localização: Curitiba-PR
Offline
|
davidbuzatto wrote: Toda classe abstract tem que ter pelo menos um método abstrato.
Na verdade, é perfeitamente possível criar uma classe abstrata sem nenhum método abstrato - se bem que não consigo imaginar qual seria a utilidade disso.
|
(Slightly) Random Broken Thoughts on Java Security |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 17:58:02
|
truck1n
Java Ninja
Membro desde: 26/04/2006 11:41:05
Mensagens: 296
Localização: São Paulo
Offline
|
Compreendido!! agora é como se fosse uma receita de bolo!!
uma classe abstract parecido com uma Interface !?!?!
respondo hj a noite.. to indo para a facul prova de matemática to ferrado!
|
Get Rich Or Die Trying |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/12/2006 00:05:30
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Nossa, num tinha me atentado a isso Sami! Valeu pelo esclarecimento
truck1n, Você pode pensar em uma interface como se fosse uma classe 100% abstrata.
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
|
|