🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #236

Re: duda sobre Timer

#236
From: Miguel Angel
Date: Fri, 13 May 2011 06:38
88 lines
3963 bytes
Muchas gracias Ricardo, ese era el problema. Se me escap� escribir el 
Timer delante.

Respecto a lo de las variables, yo lo tengo visto como campos o como 
variables de clase, es por eso que abreviaba llamandolas variables (lo 
de campos no me gusta mucho), pero vamos, propiedades ya me est� bien.

Salu2

Miguel �ngel

Le 11/05/2011, Ricardo Palomares Mart�nez a suppos� :
> El 11/05/11 19:26, Miguel Angel escribi�:
>> Hola,
>> 
>> tengo una clase llamada Juego donde defino un Timer en el constructor
>> de la siguiente forma:
>> 
>> public class Juego
>> {
>>    private Timer timerBajar;
>>    private ActionListener tareaBajar;
>> 
>>    // ............constructor
>>    public Juego()
>>    {
>>        ActionListener tareaBajar = new ActionListener()
>>            {
>>                public void actionPerformed (ActionEvent e)
>>                {
>>                    pieza.mueveAbajo(campoDeJuego.getTablero());
>>                }
>>            };
>>        Timer timerBajar = new Timer (1000,tareaBajar);
>>     }
>> 
>>    //......... metodo principal
>>    public void start()
>>    {
>>        campoDeJuego.ponerPieza(pieza);
>>        campoDeJuego.dibujarTablero();
>>        timerBajar.start();
>>     ...
>>     }
>> 
>> Pues bien, si pongo el timerBajar.start(); en el constructor, funciona
>> correctamente, pero si la pongo donde en start (que es lo que he
>> copiado aqui), me da el error java.lang.NullPointerException: null
>> 
>> es decir como si la variable timerBajar no estuviese instanciada, pero
>> yo he creado una instancia en el constructor y adem�s la variable es
>> de la clase. �que hago mal?
>
>
> Por ser estrictos con la nomenclatura, las "variables" de las clases
> se llaman "propiedades". No pasa nada, te he entendido, pero si te
> acostumbras a llamar las cosas por el nombre com�nmente aceptado,
> quedas m�s "pofesional". :-)
>
> Bien, lo que sucede es que en el contrusctor no has inicializado la
> propiedad timerBajar, sino una variable (esta s� es variable) local
> del constructor, que resulta que se llama igual que la propiedad.
> Tienes que corregir esta l�nea:
>
>>        Timer timerBajar = new Timer (1000,tareaBajar);
>
> por esta:
>
>>        timerBajar = new Timer (1000,tareaBajar);
>
>
> Aunque no se considera buen estilo de codificaci�n, a m� me gusta usar
> this. delante de las propiedades de una clase (y, si sirve para evitar
> ambig�edades, incluso delante de los m�todos). Si hubieras escrito:
>
>>        Timer this.timerBajar = new Timer (1000,tareaBajar);
>
>
> el compilador te habr�a avisado que hay un error en esa l�nea y
> posiblemente lo habr�as detectado t� mismo. Siempre puedes escribir
> "this.propiedad" para depurar y, cuando vayas a entregar el c�digo a
> alguien m�s, haces una b�squeda y reemplazo de "this." por "". :-)
>
> Saludos.
>
>
> --- Posted via news://freenews.netfront.net/ - Complaints to 
> news@netfront.net ---
Technical Details
Message-ID: <iqijlg$hj5$1@speranza.aioe.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!feeder.news-service.com!94.75.214.39.MISMATCH!aioe.org!.POSTED!not-for-mail
References: <iqegt0$2ol$1@speranza.aioe.org> <iqeur6$1ts6$1@adenine.netfront.net>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,6bc93605bd33fd93
X-Google-NewGroupId: yes
X-Google-Attributes: gidecded77573,domainid0,public,usenet
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!feeder.news-service.com!94.75.214.39.MISMATCH!aioe.org!.POSTED!not-for-mail
From: Miguel Angel <aa@aa.com>
Newsgroups: es.comp.lenguajes.java
Subject: Re: duda sobre Timer
Date: Fri, 13 May 2011 08:38:41 +0200
Organization: Aioe.org NNTP Server
Lines: 90
Message-ID: <iqijlg$hj5$1@speranza.aioe.org>
References: <iqegt0$2ol$1@speranza.aioe.org> <iqeur6$1ts6$1@adenine.netfront.net>
NNTP-Posting-Host: M975N8/57/85tdIseADsbQ.user.speranza.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-15"; format=flowed
Content-Transfer-Encoding: 8bit
X-Complaints-To: abuse@aioe.org
X-Notice: Filtered by postfilter v. 0.8.2
X-Newsreader: MesNews/1.08.03.00-es
X-ICQ: 1667332713