Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Temperature {
- private double temperature;
- private char scale;
- Temperature(double temperature, char scale)
- {
- set(temperature, scale);
- }
- private Temperature(double v) {
- }
- private void set(double temperature, char scale)
- {
- if(scale == 'K' && temperature < 0 ) {
- System.out.println("Error, Kelvin cannot be less than 0.");
- System.exit(0);
- }if(scale == 'C' && temperature < -273.15) {
- System.out.println("Error, Celsius cannot be less than absolute 0.");
- System.exit(0);
- }if(scale == 'F' && temperature <-459.67){
- System.out.println("Error, Fahrenheit cannot be less than absolute 0.");
- System.exit(0);
- }
- this.temperature=temperature;
- this.scale=scale;
- }
- private Temperature() {
- }
- Temperature toKelvin()
- {
- double converted_Temp;
- switch(scale) {
- case 'C': {
- converted_Temp = (temperature + 273.15);
- return new Temperature(converted_Temp, 'K');
- }
- case 'F': {
- converted_Temp = ((temperature - 32) * 5.0 / 9.0 + 273.15);
- return new Temperature(converted_Temp, 'K');
- }
- }
- if (temperature < 0)
- {
- System.out.println("K cannot be < 0");
- System.exit(0);
- }
- return new Temperature();
- }
- Temperature toCelsius()
- {
- double converted_Temp;
- switch (scale) {
- case 'K':
- converted_Temp = temperature - 273.15;
- return new Temperature(converted_Temp, 'C');
- case 'F':
- converted_Temp = ((temperature - 32) * 5.0 / 9.0);
- return new Temperature(converted_Temp, 'C');
- }
- if(temperature < -273.15)
- {
- System.out.println("C cannot be < -273.15");
- System.exit(0);
- }
- return new Temperature();
- }
- Temperature toFahrenheit()
- {
- double converted_Temp;
- switch (scale) {
- case 'K':
- converted_Temp = (temperature - 273.15) * 9.0 / 5.0 + 32;
- return new Temperature(converted_Temp, 'F');
- case 'C':
- converted_Temp = (temperature * 9.0 / 5.0 + 32);
- return new Temperature(converted_Temp, 'F');
- }
- if (temperature < -459.67) {
- System.out.println("F cannot be < -459.67");
- System.exit(0);
- }
- return new Temperature();
- }
- Temperature add(Temperature n)
- {
- Temperature result = new Temperature();
- result.set(temperature, scale);
- Temperature temp1 = this.toKelvin();
- Temperature temp2 = n.toKelvin();
- Temperature temp3 = n.toKelvin();
- Temperature temp4 = n.toKelvin();
- result = new Temperature(temp1.temperature + temp2.temperature + temp3.temperature + temp4.temperature);
- return result;
- }
- Temperature subtract(Temperature z) {
- Temperature temp2 = this.toKelvin();
- Temperature temp1 = z.toKelvin();
- new Temperature( temp2.temperature - temp1.temperature);
- return new Temperature(temp1.temperature - temp2.temperature, 'K');
- }
- Temperature multiply(Temperature n)
- {
- Temperature temp1 = this.toKelvin();
- Temperature temp2 = n.toKelvin();
- return new Temperature(temp1.temperature*temp2.temperature, 'K');
- }
- Temperature divide()
- {
- Temperature tempAve = toKelvin();
- double avgtemp =(tempAve.temperature/ 5);
- return new Temperature(avgtemp, 'K');
- }
- boolean equals(Temperature n)
- {
- return this.temperature == n.temperature && this.scale == n.scale;
- }
- public String toString()
- {
- return "Temperature " + temperature + " is measured in " + scale;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement