Galera,
há um bom tempo tô familiarizado com isso, goto é uma palavra chave do Java.
Mas porque diabos ela existe no java se não tem uso algum? Porque é reservada?
valeu.
Galera,
há um bom tempo tô familiarizado com isso, goto é uma palavra chave do Java.
Mas porque diabos ela existe no java se não tem uso algum? Porque é reservada?
valeu.
até onde eu sei…
algumas versões antigas do Java… “zuavam” o C… por causa do comando Goto
dizem as más linguas… q retornava uma mensagem na tela…
“Vai aprender a programar!” (em ingles)
jah q realmente eh um absurdo usar o goto em C… e dizer q é um programador fazendo isso =P
nao sei ao certo se tem utilidade no Java
Edit:
Ummm, estou confundindo eles com elas. Leia mais abaixo.
Eu não conheço nenhuma exlpicação “técnica”, só a que se UM DIA alguém for implementar goto ou const por em Java, não vai haver problemas porque ninguém vai ter usado esses termos como identificadores em códigos antigos…
E pra mim é a única explicação plausível… Veja o enum, não era e virou de repente, fazendo muita gente mudar código pra migrar pra Java 5…
Lendo melhor por aqui:
goto é reservado simplesmente p/ ninguém usar ele.
break e continue fazem o trabalho se substituir ele, quando usados com um label.
[quote=Bruno Laturner] Como não tem uso? Basta definir um label e usar o goto que ele funciona.
Continue e break, se não me engano, também funcionam com labels.
Edit:
Ummm, estou confundindo eles com elas.[/quote]
Cara, goto nao é usado hoje mais porque é chamado de “Má pratica de Programação”…
As pessoas que o usavam com frequencia se perdia no programa quando ia depura-lo, por isso que tem essa discussao sobre esse bendito comando…
O mesmo que voce faz com ele, voce pode fazer com outros comandos, entao nao é aconselhavel usar…
Abraços
[quote=blackfalcon][quote=Bruno Laturner] Como não tem uso? Basta definir um label e usar o goto que ele funciona.
Continue e break, se não me engano, também funcionam com labels.
Edit:
Ummm, estou confundindo eles com elas.[/quote]
Cara, goto nao é usado hoje mais porque é chamado de “Má pratica de Programação”…
As pessoas que o usavam com frequencia se perdia no programa quando ia depura-lo, por isso que tem essa discussao sobre esse bendito comando…
O mesmo que voce faz com ele, voce pode fazer com outros comandos, entao nao é aconselhavel usar…
Abraços[/quote]
Sobre isso de GOTO em Java antigo gerar mensagens como “Vá aprender a programar”, eu não acho que acontecesse de verdade, pois um processo nas costas é uma coisa de que a Sun sempre foge. Talvez em alguma home made tenha tido isso, mas duvido muito na implementação original.
Ninguém usa mais GOTO porque é um erro lógico. Sem contar que se você for pegar alguns códigos, tem uns 80 GOTO inserido. Ai como que faz pra ficar viajando de tela o tempo todo?
Mas cara, eu ainda não entendi e nem vi motivos para ser reservado. Pode ser reservado sim, mas e o motivo? Não usar? Só um louco ia usar isso e achar que ia ter algum retorno. Nem que ele fizesse um método pra implementar goto. mas isso já não é problema da linguagem, mas sim da cabeça do programador.
Const eu até entendo porquê seja, mas goto…
Se alguém souber mais alguma hipótese… Explane-se, por favor!
Como já foi dito, ela é reservada para ninguem a usar como nome de variável.
Se usada como comando dá erro.
Outra palavra que é reservada e não serve para nada é const
Sim cara, mas porquê ninguém pode utilizar goto como nome de variável, mesmo que fique confuso, eu posso criar uma chamada function ou procedure que ele não reclama. né?
como já foi dito é uma inclusão historica. Ao colocar como reservada não pode ser usada como variável. Ou seja, “não deixe o programador se lembrar se usar coisas goto-like”. Então a opção é usar como comando. Ao fazer isso o java se queixa. Então o uso de goto é completamente impossivel em java, em qualquer forma ou instancia.
Isto é o reflexo do java ser uma linguagem de principios … “morais” ( à falta de palavra melhor) que tenta não apenas fazer, mas ensinar a fazer direito.
Entenda isso no mesmo nivel de porquê java não tem herança multipla ou porquê não tem numeros unsigned (além de char)
É tudo para evitar más práticas que eram habituais quando o java nasceu e sobretudo eram habituais entre os caras do C e C++ de onde o java deriva a sua sintaxe. É uma forma de dizer : “hei! java é OO e tem a sua própria personalidade: acostumem-se!”
Eu, particularmente, acho isso meio inútil.
Porque cara, mesmo que o cara fosse usar goto, daria pau. Não vejo um sentido bom nisso, por mais que eles sejam o OH da programação que criaram isso, pra mim isso é besteira mesmo. Bem, vai da opinião de cada um.
[quote=Sergio Figueras]Eu, particularmente, acho isso meio inútil.
Porque cara, mesmo que o cara fosse usar goto, daria pau. Não vejo um sentido bom nisso, por mais que eles sejam o OH da programação que criaram isso, pra mim isso é besteira mesmo. Bem, vai da opinião de cada um. [/quote]
Realmente… mas quem somos nós para questionar os poderosos?
Abraços
No livro da Kathy Sierra da SCJP explica. É algo mais ou menos assim:
Obviamente, isso era para os compiladores java versão 0.8 e 0.9, de 1994 e 1995. No JDK 1.0 já tinha sido substituído por algo bem mais sem graça.
Bem, fico esperando um dia que vao tirar esse tipo de coisa.
Quero ver quantas coisas inúteis Java terá daqui a uns 20 anos.
[quote=Sergio Figueras]Bem, fico esperando um dia que vao tirar esse tipo de coisa.
Quero ver quantas coisas inúteis Java terá daqui a uns 20 anos.[/quote]
Tudo bem que depende de uma filosofia de vida o que vou dizer a seguir, mas, essas coisas não são inuteis.
É importante ser positivista, mas é mais importante entender que as negativas podem ser igualmente afirmativas.
[quote=Sergio Figueras]Bem, fico esperando um dia que vao tirar esse tipo de coisa.
Quero ver quantas coisas inúteis Java terá daqui a uns 20 anos.[/quote]
Não seja por isso. Se você for ver, Cloneable é um erro de ortografia. O certo é Clonable. O .NET “cloneou” esse mesmo erro de ortografia!
No caso a palavra reservada const seria uma Constante porem é uma má pratica ja que o modificador final faz isso?
cosntante segue o mesmo principio… é um contrasenço (não sei escrever portugues então perdoe ^^ ) … enfim é um contrasenso falar que:
uma “VARIAVEL” é “CONSTANTE”
ou é variável ou é constante… sendo assim… a variável é declarada como FINAL, ou seja, seu valor depois de inicializada é final, não muda…
Como você disse, a variável passa a ser constante após a primeira atribuição. Ela não começa constante.
Constantes de verdade mesmo são aquelas marcadas como final e são inicializadas na mesma linha que foram declaradas, ou que não exista uma estrutura controle de fluxo entre a declaração e a inicialização(ou seja, não tem porque não iniciar na mesma linha).