Bom dia a todos. Tenho algumas dúvidas de Java e vou postalas aqui em forma de questões abertas. Agradeço a todos que responderem.
O comando break, “para” a execução corrente. Correto ? Mas li em um livro que ele pode ser omitido em alguns casos. Mas não entendi quando exatamente. Por exemplo, em um comando Switch(){}, quando eu posso omitir o break, e quando eu devo usa-lo ? Eu sempre uso, está correto ?
2)O que é um statement ?
3)Blocos estáticos são geralmente usados para inicializar variáveis estáticas; esse tipo de bloco fica solto na classe. Quando exatamente ele é executado ?
Bom dia a todos. Tenho algumas dúvidas de Java e vou postalas aqui em forma de questões abertas. Agradeço a todos que responderem.
O comando break, “para” a execução corrente. Correto ? Mas li em um livro que ele pode ser omitido em alguns casos. Mas não entendi quando exatamente. Por exemplo, em um comando Switch(){}, quando eu posso omitir o break, e quando eu devo usa-lo ? Eu sempre uso, está correto ?
O comando break (quebrar) quebra a execução da instrução de repetição ou do swith. Só desses.
O switch do java é fallthought (“cai-através”) o que significa que quando um case é selecionado e executado , a execução continua executando os case abaixo. Para evitar isso, vc usao break
Entendi. Então nesse caso o switch não faz o teste case 3: ?
Ou pode-se dizer que ele faz o teste, mas não sabe onde começou um e terminou o outro ?
Então, minha dúvida é referente ao " while statement".
Obrigado por ajudar.
pimenta
Sobre o case, um exemplo que me ajudou muito foi o seguinte:
switch(mes){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dias = 31;
break;
case 4:
case 6:
case 9:
case 11:
dias = 30;
break;
case 2:
//teste...
}
Deu pra entender?
Se não tiver o break ele vai continuar executando os case linha a linha, quando se coloca o break você diz pra parar de executar os case naquele momento.
statement é um “bloco”/instrução
while(teste){
//código
}
Isso é um while statement, por exemplo.
Abraços,
joaoorso
A agora entendi pra que serve a omiçao do break no Switch.
Então um statemant é um bloco de código qualquer ? :roll:
Agradeço as respostas.
blackfalcon
Sim, statement significa declaração, ou seja:
1. while(teste){
2. //código
3. }
Isso é uma declaração que existi um while ai… entende…
sergiotaborda:
joaoorso:
Após o load da classe pelo classeloader , antes dos atributos serem inicializados e antes dos construtores serem chamados.
Nao entendi muito bem o que voce quiz falar, mas gostaria de saber tambem… alguem poderia explicar melhor fazendo favor? Obrigado.
Abraços
joaoorso
:idea: Então, pelo meu entendimento os blocos estáticos são executados quando a classe é carrecada pelo ClasseLoader que vem a ser uma “memória” diferente da Heap e da Stack. Isso deve ocorrer em dituações como: NomeDaClasse.nomedoMetodoEstatico();
Onde não ha instância, mas a classe foi invocada.
Ou quando a classe é instânciada.
Alguém me corrija se estiver errado.
joaoorso
:shock: NOVA DÚVIDA :shock:
Alguém sabe me explicar para que serve esse ponto de interrogação (?)?
[code]
Set extends Float> s = new TreeSet();
[quote]
Obrigado.
joaoorso
:shock: NOVA DÚVIDA :shock:
Alguém sabe me explicar para que serve esse ponto de interrogação (?)?
Set<?extendsFloat>s=newTreeSet<Float>();
Obrigado … 8)
pimenta
Se não estou enganado serve para indicar o tipo genérico.
Leia sobre…
Abraços,
T
thingol
? neste caso se lê "algo".
Set<?extendsNumber>s=newTreeSet<Float>();
Poderia ser lido em português como:
“Declaro s como sendo um Set de Objetos que pertencem a classes que Estendem/Implementam Number, e atribuo a s um novo objeto TreeSet de Objetos que pertencem à classe Float”.
T
thingol
Da mesma forma,
Set <? super Double> d;
é a mesma coisa que
"Declaro d como sendo um Set de Objetos que pertencem a classes/interfaces que são superclasses/superinterfaces de Double, como Object, Number, ou Double. "
joaoorso
:arrow: Acho que entendi … então, como eu não tenho um tipo de dado espesífico, o ponto de interrogação indica que pode ser qualquer um. Tipo assim:
:idea: Então, pelo meu entendimento os blocos estáticos são executados quando a classe é carrecada pelo ClasseLoader que vem a ser uma “memória” diferente da Heap e da Stack.
Não. O classloader é um objeto (implementa a classe java.lang.ClassLoader) que carrega a classe. Ou seja, a partir dos bytes do .class ele apenas carrega os dados da classe criando um objeto to tipo java.lang.Class mas nenhum objeto do tipo da classe. Ele cria isso no heap onde qualquer outro objeto seria criado.
Se vc tem uma classe XPTO num arquivo xpto.class e a carrega com o classloader, será gerado um objeto Class com os dados de xpto mas nenhum objeto XPTO. Objetos XPTO só serão criados quando for invocado new , ou Classe.newInstance ou ClassLoader.newinstance()
Mr_Smith
5
0 1 4
1 2
2
3 2 5
4 1 5
Eu tenho esta entrada num arquivo txt estou com dificuldade em como vou ler e implementar em um
grafo sendo que o arquivo contém o número de matérias,na primeira linha; pré-requisito e matérias, nas demais linhas.Um exemplo (a matéria 0, por exemplo, é pré-requisito de 1 e 4).
Preciso de uma LUZ… valew!! o objetivo e utilizar um grafo em profudidade e usar ordenação topologicas…
me ajudem preciso apenas de uma luz… valew!!!