Algumas dúvidas

Bom, estou iniciando em Java faz um tempinho. Pra ser exato a duas semanas :smiley:
Sou programador Python faz alguns anos.

Estou com algumas dúvidas aqui.

Porque há a necessidade disso?

Scanner sc = new Scanner(System.in);

Se eu estou dizendo que quero um novo Scanner não seria óbvio que o tipo é Scanner?

É seguro?

Como estou acostumado com Python, queria usar um tipo de print(), gostaria de saber se posso ter alguns problemas no meu código se eu colocar um:

public static void print(String x) {System.out.println(x);}

Foreach

Como (novameeente…) eu estou acostumado com Python, me sinto meio estranho usando usando : (dois pontos) sendo que a própria documentação do Java diz que “dois pontos” quer dizer “in”. Há algum jeito de eu usar “in” ao em vez de “dois pontos”?

java.net.URL

Há algum método menos estranho para pegar um conteúdo de uma URL do que usar:

while (scanner.hasNext()) System.out.println(scanner.nextLine());

Tipo, eu queria um jeito de colocar em uma variável. Mas nada de “while… content += linha”.

Bom, acho que minhas dúvidas foram muitas. Mas obrigado pra quem responder =)

  1. Se não fosse assim, como voce faria para declarar um objeto do tipo ClasseBase que segura uma referência para um tipo ClasseDerivada? Exemplo:

Map map = new HashMap(); *Obs.: Isso pode parecer meio estranho se você nunca lidou com linguagens tipadas, mas acredite, às vezes é muito útil.

  1. É seguro, e muito conveniente se você só for utilizar a saída padrão (System.out) e imprimir sempre linhas inteiras e simples.

  2. Que eu saiba a forma mais simples em Java de simular um Foreach realmente é o modelo for(Objeto objeto : array) {}, mas para projetos delicados e quando lidar com objetos complexos, o ideal é usar um Iterator mesmo (como em map.iterator()).

  3. Desconheço (e também não acho que haja, uma vez que o Java é um melhoramento do C++, e não uma linguagem Peg&Faça como, por exemplo, PHP).