celsius fahrenheit

Status
Niet open voor verdere reacties.

javaan

Gebruiker
Lid geworden
8 mrt 2011
Berichten
8
de main
Code:
public class main {
	public static void main (String [] arg) {
		graden g = new graden (6);
		System.out.println(g.toString());
		
	}
}

en de code
Code:
public class graden {
	private double celcius;
	
	public graden (double celsius){
		this.celcius=celcius;
	}
	public double temperatuur () {
		return ((celcius*1.8)+32);
	}

}

Ik ben een beginner en tracht iets te maken waarmee ik C kan omrekenen naar F.
De uitslag die ik krijg is --graden@13b26af3--
haha niet echt wat ik wil.
Wie wil er op deze code schieten met (korte)uitleg....
 
Ge hebt je toString() niet overschreven dus krijg je nu de toString() van de superclass Object terug. In graden moet je dus iets doen als:

Code:
public String toString() {
   return new Double(temperatuur()).toString();
}
 
Dank!

Ik heb het zo opgelost:

Code:
public String toString(){
		String s = " fahrenheit " + temperatuur();
		return s;
	}

Maar wat is nou het verschil met dit en wat er in de main staat:
Code:
graden g = new graden (6);
		System.out.print(g.toString());
dat is ook een printout!
 
Laatst bewerkt:
Zoals reeds gemeld is elke class dat je aanmaakt een afgeleide (child class) van de grote superclass Object. Als je eenmaal overerving geleerd hebt zul je weten dat dit betekent dat je de public en protected methodes van je superclass rechtstreeks kunt oproepen. Enkele voorbeelden van methodes uit 'Object' zijn clone(), equals(Object o), hashCode(), notify(), wait() en nog enkele andere zoals toString(). De implementatie van de methode van Object is meestal niet wat je wilt hebben.
Uit de java API betreffende 'Object':
public String toString()

Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

getClass().getName() + '@' + Integer.toHexString(hashCode())


Returns:
a string representation of the object.
Als je wilt dat g.toString() niet iets teruggeeft als graden@123456 moet je deze methode gaan overschrijven. Om een methode te overschrijven moet je dezelfde naam, input en returnvorm gebruiken: dus in dit geval ook
Code:
public String toString(/*leeg*/) {
//en hier moet dan komen wat jij wilt dat de methode doet...
}

Als je de applicatie start zal deze eerst kijken of je de methode hebt overschreven, indien ja, gebruikt hij deze, indien neen gebruikt hij die van je superclass.
 
Je kan toch gewoon

public static void main (String [] arg) {
graden g = new graden (6);
System.out.println(g.temperatuur() + "");
}

schrijven?
Een mooiere naam voor temperatuur() is getTemperatuur() zodat je gelijk kunt zien wat het doel van de methode is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan