[dúvida] Como criar um objeto tipo o objeto String?

16 respostas
K

como fazer para que uma instância possa ser instânciada igual ao objeto String…

String minha_string = “to iniciando ela assim”;

em vez do jeito normal usando o new:

String minha_string = new String(“jeito de iniciar normal dos objetos”);

[color=blue]1) como posso criar uma classe que possa ser instânciada do mesmo jeito que String?
[/color]

obrigado

16 Respostas

dicabeca
sua_String.equals("assim vc compara") 

 String Mengao = "O Melhor!!!" //em java vc ja istancia uma String assim!!!
ViniGodoy

Você diz, poder criar uma classe Aluno e fazer:
Aluno a = “Vinicius”; ?

Não tem como. O Java tem um tratamento especial para Strings, já que eles se aproximam mais de tipos primitivos.
No C++ daria.

K
  1. esse “tratamento especial”, ou excessão do java, foi programanda na JVM para tratar o objeto String assim, [color=red]ou[/color], foi um jeito especial programado [color=blue]EM JAVA[/color] na classe String?

  2. e, quais outros “tratamentos especiais” existe no Java? Onde eu posso ler a respeito? (Capitulo de um livro, site da internet, etc)

obrigado

brunoha

ViniGodoy:
O Java tem um tratamento especial para Strings, já que eles se aproximam mais de tipos primitivos.
No C++ daria.

Bom saber disso!

Mas por exemplo, dá para fazer da seguinte forma, não???

String strTeste1 = new String();
strTeste1 = "teste";

String strTeste2 = strTeste1;
leofernandesmo
brunoha:
ViniGodoy:
O Java tem um tratamento especial para Strings, já que eles se aproximam mais de tipos primitivos. No C++ daria.

Bom saber disso!

Mas por exemplo, dá para fazer da seguinte forma, não???

String strTeste1 = new String();
strTeste1 = "teste";

String strTeste2 = strTeste1;

Da sim...mas evite usar new com String. Não é necessário.

brunoha

blzzzz

mas neste caso, também pode se fazer:

string strTeste = "teste";

direto, com string minúsculo!

dm_thiago
brunoha:
ViniGodoy:
O Java tem um tratamento especial para Strings, já que eles se aproximam mais de tipos primitivos. No C++ daria.

Bom saber disso!

Mas por exemplo, dá para fazer da seguinte forma, não???

String strTeste1 = new String();
strTeste1 = "teste";

String strTeste2 = strTeste1;
Isto
String nova = new String();
é a mesma coisa que isso
String nova = ""

Uma dica, esse é o tipo de dúvida que você poderia ter aberto o compilador e ter testado por você mesmo. Provavelmente você teria a resposta mais rápido do que entrando no GUJ, perguntando e esperando uma resposta. Não é uma crítica, realmente é só uma idéia para futuras duvidas no estilo dessa.

ViniGodoy

brunoha:
blzzzz

mas neste caso, também pode se fazer:

string strTeste = "teste";

direto, com string minúsculo!

Não entendi. Em que caso vc diz que daria para fazer com string minúsculo???

dm_thiago

brunoha:
blzzzz

mas neste caso, também pode se fazer:

string strTeste = "teste";

direto, com string minúsculo!

Isso era pra ter sido mesmo uma afirmação?
Bom, não dá. Tem que ser String, como qualquer classe do java (fora as classes criadas por usuários que podem colocar minúsculo, mesmo não devendo).

M

brunoha:
blzzzz

mas neste caso, também pode se fazer:

string strTeste = "teste";

direto, com string minúsculo!

Não… assim não iria funcionar.
O Java é Case Sensitive, ou seja, para ele uma letra ‘s’ minuscula é totalmente diferente de uma letra ‘S’ maiuscula.

A palavra String em Java tem que ser escrita sempre com letra maiuscula. Se você compilar o que você escreveu vai dar um erro de compilação dizendo que a ‘classe string’ não foi encontrada (cannot find symbol).

E como já disseram, é mais rapido fazer esses testes num editor… :wink:

K

e… er… esqueceram da minha dúvida? :roll:

  1. esse “tratamento especial”, ou excessão do java, foi programanda na JVM para tratar o objeto String assim, ou, foi um jeito especial programado EM JAVA na classe String?

  2. e, quais outros “tratamentos especiais” existe no Java? Onde eu posso ler a respeito? (Capitulo de um livro, site da internet, etc)

obrigado ^^

ViniGodoy

kaumaukau:
e… er… esqueceram da minha dúvida? :roll:

  1. esse “tratamento especial”, ou excessão do java, foi programanda na JVM para tratar o objeto String assim, ou, foi um jeito especial programado EM JAVA na classe String?

Foi no compilador, na especificação da linguagem e na VM.
Não existe um jeito EM JAVA de fazer isso, como eu já havia dito.

Existe também o pool de Strings, que é um recurso da VM e do compilador.
A classe Number também tem um Pool, mas creio que já seja um recurso “em java”.

Não sei se tem um artigo que aglomere todas as coisas “especiais”. Se alguém souber, também gostaria de conhece-lo. :slight_smile:

vanzella

kaumaukau:
como fazer para que uma instância possa ser instânciada igual ao objeto String…

String minha_string = “to iniciando ela assim”;

em vez do jeito normal usando o new:

String minha_string = new String(“jeito de iniciar normal dos objetos”);

[color=blue]1) como posso criar uma classe que possa ser instânciada do mesmo jeito que String?
[/color]

obrigado

Cara se eu entendi sua duvida, é simples, basta criar um construtor na sua classe que receba uma string.
exemplo:

public class MinhaClasse()
{
    String nome;
    public MinhaClasse(String nome)
   {
        this.nome = nome;
   }
}

não esqueça de implementar o construtor sem argumentos, se precisar.

brunoha

xiiiiiiiiiiiiiiiiii
então eu confundi Java com C#, relativo ao string com s minúsculo… q gafe…
tô até com vergonha agora…
:oops:
rsss
Falha minha

mas o do String strTeste = “”; eu já sabia

K

mais existe algum “nome técnico” para essas excessões?

…queria pesquisar mais a respeito

obrigado

rdantas

Bom kaumaukau, acho que vc está confundindo as coisas. Observe que o valor “sua string” já é um objeto da classe String. Então, se vc tem uma classe ‘Aluno’ e um objeto ‘aluno’, vc também pode atribuir como uma String.
Ex.:

Aluno al = aluno;

Observer que neste caso vc não precisa fazer:

Aluno al = new Aluno();
    al = aluno;

se eu não estou errado foi essa sua dúvida??

Criado 14 de março de 2008
Ultima resposta 15 de mar. de 2008
Respostas 16
Participantes 9