/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Et ? angående Leap year program
Fra : Dennis Olesen


Dato : 17-08-04 16:42

mport java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class LeapYearApplet extends Applet implements ActionListener
{
TextField inputField;
private int yr;
private Year year = new Year();
int result;

public void init()
{
Label prompt1 = new Label (" Input a year and press return:");
inputField = new TextField(10);
inputField.setText("0");
inputField.addActionListener( this );
add (prompt1);
add (inputField);
}
public void actionPerformed(ActionEvent e)
{
//String inputStr = inputField.getText();
int yr = Integer.parseInt(inputField.getText());

result = year.isLeapYear(yr);
}
}
Jeg kan ikke få den sidste line til at virke. Når jeg compilier bliver der
skrevet "incompatible types". Er der nogen som kan hjælpe mig vidre?

MVH
Dennis Olesen



 
 
Sune Vuorela (17-08-2004)
Kommentar
Fra : Sune Vuorela


Dato : 17-08-04 17:08

On 2004-08-17, Dennis Olesen <olesenses@os.dk> wrote:
> int result;
>
> result = year.isLeapYear(yr);
> Jeg kan ikke få den sidste line til at virke. Når jeg compilier bliver der
> skrevet "incompatible types". Er der nogen som kan hjælpe mig vidre?

Hvad er returtypen på year.isLeapYear(int)? Mit bedste bud er at det er
her det er galt. Normalt er boolean returtypen på de funktioner jeg
laver af typen isSomething()

Hvis det er det der er galt, så er det fordi du ikke kan gemme en
boolean i en int-variabel, lige som du ikke kan putte en firkant gennem
et rundt hul.

--
Sune

Dennis Olesen (17-08-2004)
Kommentar
Fra : Dennis Olesen


Dato : 17-08-04 17:16

Tak for svaret. Det var lige det jeg manglede for at komme vidre.

MVH
Dennis Olesen



Dennis Olesen (17-08-2004)
Kommentar
Fra : Dennis Olesen


Dato : 17-08-04 17:41

Jeg troede at jeg havde fundet den røde tråd men nej.

Her ses denne klasse som result = year.isLeapYear(yr); prøver at skrive
til. result er af int type men jeg vil gerne have at metoden isLeapYear
laver en booelan i return. Kan man det? og måske en eksempel ? hvis der kan
forståes hvad jeg mener.

MVH
Dennis Olesen

public class Year
{ // Start på year class
private boolean yearIsLeapYear; // class variabler

public int isLeapYear(int yr)
{
if (((yr % 4 == 0) // Er året / med
|| (yr % 100 != 0)) // "AND" ikke med 100
&& (yr % 400 == 0)) // "OR" med 400
yearIsLeapYear = true; // Hvis det over stående
er sandt så skal yearIsLeapYear = true
else
yearIsLeapYear = false; // ellers skal
yearIsLeapYear = false

return yearIsLeapYear;
} // Slut på isLeapYear
metode
} // Slut på year class



Sune Vuorela (17-08-2004)
Kommentar
Fra : Sune Vuorela


Dato : 17-08-04 18:02

On 2004-08-17, Dennis Olesen <olesenses@os.dk> wrote:
> Jeg troede at jeg havde fundet den røde tråd men nej.
>
> Her ses denne klasse som result = year.isLeapYear(yr); prøver at skrive
> til. result er af int type men jeg vil gerne have at metoden isLeapYear
> laver en booelan i return. Kan man det? og måske en eksempel ? hvis der kan
> forståes hvad jeg mener.


Er det ikke bare at du i appletten skriver
boolean result; i stedet for int result;

--
Sune

Dennis Olesen (17-08-2004)
Kommentar
Fra : Dennis Olesen


Dato : 17-08-04 18:14

Nej fordi i min result ligger et årstalt som skal testet om det er et skudår
og så skal jeg have en boolean tilbage. Result hedder nu yearnumber

Dennis Olesen

/*
* File: Year.java
* Author : Dennis Olesen
* Description: This class contain methods to work out if a year is a leap
year
*/


public class Year
{ // Start på year class
private boolean yearIsLeapYear; // class variabler

public boolean isLeapYear(int yr)
{
if (((yr % 4 == 0) // Er året / med
|| (yr % 100 != 0)) // "AND" ikke med 100
&& (yr % 400 == 0)) // "OR" med 400
yearIsLeapYear = true; // Hvis det over stående
er sandt så skal yearIsLeapYear = true
else
yearIsLeapYear = false; // ellers skal
yearIsLeapYear = false

return yearIsLeapYear;
} // Slut på isLeapYear
metode
} // Slut på year class





mport java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class LeapYearApplet extends Applet implements ActionListener
{
TextField inputField;
private boolean yearnumber;
Year year = new Year();


public void init()
{
Label prompt1 = new Label (" Input a year and press return:");
inputField = new TextField(10);
inputField.setText("0");
inputField.addActionListener( this );
add (prompt1);
add (inputField);
}
public void actionPerformed(ActionEvent e)
{
String inputStr = inputField.getText();
yearnumber = Integer.parseInt(inputStr);

yearnumber = year.isLeapYear(yr);
}
}



Jonas Kongslund (17-08-2004)
Kommentar
Fra : Jonas Kongslund


Dato : 17-08-04 21:26

On Tirsdag den 17. august 2004 19:13, Dennis Olesen wrote:
> public boolean isLeapYear(int yr)
> {
> if (((yr % 4 == 0) // Er året / med
> || (yr % 100 != 0)) // "AND" ikke med 100
> && (yr % 400 == 0)) // "OR" med 400
> yearIsLeapYear = true; // Hvis det over
> stående
> er sandt så skal yearIsLeapYear = true
> else
> yearIsLeapYear = false; // ellers skal
> yearIsLeapYear = false
>
> return yearIsLeapYear;
> } // Slut på isLeapYear
> metode

År 2004 er et skudår, hvilket ovenstående metode vil svare nej til. Kan du
se hvad du gør galt?

Hvorfor har du valgt at deklarere yearIsLeapYear som en instansvariabel
(dvs. deklareret på klasseniveau) frem for en lokal variabel (dvs.
deklareret på metodeniveau)? Kan du undvære den?

--
Jonas Kongslund

Henrik Davidsen (17-08-2004)
Kommentar
Fra : Henrik Davidsen


Dato : 17-08-04 18:51

> result er af int type men jeg vil gerne have at metoden isLeapYear
> laver en booelan i return. Kan man det? og måske en eksempel ?



> private boolean yearIsLeapYear; // class variabler
>
> public int isLeapYear(int yr)
> {
> return yearIsLeapYear;
> } // Slut på isLeapYear


Jeg har lige skåret lidt væk fra den viste kode, og umiddebart hang jeg mig
ved, at du har boolean variablen yearIsLeapYear, hvor der så i metoden
gemmes enten true eller false.
Men i metodeheaderen står der at metoden skal returnere en int, selvom det
stadig er yearIsLeapYear der returneres... Prøv evt. at ændre metodeheaderen
til at der står:
private boolean isLeapYear(int yr) i stedet for
private int isLeapYear(int yr).

Så vil jeg tro dit ønske bliver opfylt... Uden lige at have testet det (og
min hjerne går lidt i tomgang nu), så ved jeg slet ikke om det giver mening
at returnere en boolean (altså true eller false), hvis metodeheaderen siger
at der skal returneres en int.

Men prøv at se om det gør en forskel

Mvh. Sjang



Henrik Davidsen (17-08-2004)
Kommentar
Fra : Henrik Davidsen


Dato : 17-08-04 18:54

> Her ses denne klasse som result = year.isLeapYear(yr); prøver at skrive
> til. result er af int type men jeg vil gerne have at metoden isLeapYear
> laver en booelan i return. Kan man det?

Hov, jeg var vist lidt hurtig i aftrækkeren. Du har din result som er af
typen int, og der vil du gemme resultatet af isLeap.... Men hvis du gerne
vil have at din metode isLeapYear returnerer en boolean (som jeg også har
svaret på hvordan du gør), så skal result også laves om til en boolean. (vil
jeg tro.. min hjerne står stadig lidt i dvale).

Men jeg forstår ikke lige at du skriver, i dit svar til Sune om at der
ligger et årstal i result - som nu hedder yearnumber i stedet... men hvis
jeg har misforstået dig, så må du jo lige skrive igen

/Sjang



Dennis Olesen (17-08-2004)
Kommentar
Fra : Dennis Olesen


Dato : 17-08-04 19:03

> Men jeg forstår ikke lige at du skriver, i dit svar til Sune om at der
> ligger et årstal i result - som nu hedder yearnumber i stedet... men hvis
> jeg har misforstået dig, så må du jo lige skrive igen
>
> /Sjang
>
Programmet skal beregne om et år et skudår. I den første version lå
årstallet i en variabel som hed result men nu hedder den bare yearnumber.

Tak for dit svar jeg vil lige testet det.

MVH
Dennis Olesen



Dennis Olesen (17-08-2004)
Kommentar
Fra : Dennis Olesen


Dato : 17-08-04 19:10

Jeg takker for de mange gode svar. Nu spiller det bare.

MVH
Dennis Olesen



Jonathan Stein (17-08-2004)
Kommentar
Fra : Jonathan Stein


Dato : 17-08-04 18:18

Sune Vuorela wrote:

> lige som du ikke kan putte en firkant gennem et rundt hul.


***
* *
* +-+ *
* | | *
* +-+ *
* *
***

Why not?

M.v.h.

Jonathan

--
Er din e-mail vigtig? Er du træt af virus og spam i mailen?
Virus-scanning og spam-filtrering på alle mail-konti. På redundant
mail-setup med daglig backup.
http://www.jsp-hotel.dk/

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408177
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste