0% found this document useful (0 votes)
47 views6 pages

Sesion 03 Abstractelectronicdevice

The document shows examples of using final keywords in Java, including preventing subclassing of

Uploaded by

carsistemas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views6 pages

Sesion 03 Abstractelectronicdevice

The document shows examples of using final keywords in Java, including preventing subclassing of

Uploaded by

carsistemas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

SESION 03

AbstractElectronicDevice package example;


package example;
public class Television extends ElectronicDevice {
public class Caller {
public void turnOn() {
public static void main(String[] args) { changeChannel(1);
initializeScreen();
// ElectronicDevice dev = new ElectronicDevice(); }
ElectronicDevice dev = new Television(); public void turnOff() {}
dev.turnOn(); // all ElectronicDevices can be turned
on public void changeChannel(int channel) {}
public void initializeScreen() {}
} }
}

package example;

public abstract class ElectronicDevice {

public abstract void turnOn();

public abstract void turnOff();

}
public abstract void turnOn();
AfterEnums
public abstract void turnOff();

}
package com.example;

public class AfterEnumsMain { package com.example;

public static void main(String[] args) { public enum PowerState {


Computer comp = new Computer();
comp.setState(PowerState.SUSPEND); OFF,
} ON,
} SUSPEND;
}

package com.example;

import static com.example.PowerState.*;

public class Computer extends ElectronicDevice {

private PowerState powerState = OFF;

@Override
public void turnOn() {
powerState = ON;
}

@Override
public void turnOff() {
powerState = OFF;
}

public void suspend() {


powerState = SUSPEND;
}

public void setState(PowerState state) {


switch(state) {
case OFF:
turnOn();
break;
case ON:
turnOff();
break;
case SUSPEND:
suspend();
break;

}
}

package com.example;

public abstract class ElectronicDevice {


BeforeEnums
package com.example;
package com.example;
public class BeforeEnumsMain {
public abstract class ElectronicDevice {
public static void main(String[] args) {
Computer comp = new Computer(); public abstract void turnOn();
comp.setState(Computer.POWER_SUSPEND);
} public abstract void turnOff();
}
}

package com.example;
package com.example;
public class Computer extends ElectronicDevice {
//enumeration pattern before Java 5
public static final int POWER_OFF = 0; //can not use in a switch
public static final int POWER_ON = 1; public class PowerState {
public static final int POWER_SUSPEND = 2; public static final PowerState OFF = new PowerState();
public static final PowerState ON = new PowerState();
private int powerState = POWER_OFF; public static final PowerState SUSPEND = new
PowerState();
@Override
public void turnOn() { private PowerState() {}
powerState = POWER_ON; }
}

@Override
public void turnOff() {
powerState = POWER_OFF;
}

public void suspend() {


powerState = POWER_SUSPEND;
}

public void setState(int state) {


switch(state) {
case POWER_OFF:
turnOn();
break;
case POWER_ON:
turnOff();
break;
case POWER_SUSPEND:
suspend();
break;

}
}

}
public abstract class ElectronicDevice {

public abstract void turnOn();

ComplexEnums public abstract void turnOff();

}
package com.example;

public class ComplexEnumsMain { package com.example;

public static void main(String[] args) { public enum PowerState {


Computer comp = new Computer();
comp.setState(PowerState.SUSPEND); OFF("The power is off"),
} ON("The usage power is high"),
} SUSPEND("The power usage is low");

private String description;


package com.example;
private PowerState(String d) {
import static com.example.PowerState.*; description = d;
}
public class Computer extends ElectronicDevice {
public String getDescription() {
private PowerState powerState = OFF; return description;
}
@Override
public void turnOn() { @Override
powerState = ON; public String toString() {
} return getDescription();
}
@Override }
public void turnOff() {
powerState = OFF;
}

public void suspend() {


powerState = SUSPEND;
}

public void setState(PowerState state) {


switch(state) {
case OFF:
turnOn();
break;
case ON:
turnOff();
break;
case SUSPEND:
suspend();
break;

}
System.out.println(state);
}

package com.example;
}
}

FinalExamples

package com.example;

// compile time error


public class ChildClass extends FinalParentClass { }

package com.example;

public final class FinalParentClass { }

package com.example;

public class MethodChildClass extends MethodParentClass


{
// compile time error
public void printMessage() {
System.out.println("Cannot override method");
}
}

package com.example;

public class MethodParentClass {


public final void printMessage() {
System.out.println("This is a final method");
}
}

package com.example;

import java.util.Date;

public class VariableExampleClass {

private final int field;


private final int forgottenField;
private final Date date = new Date();
public static final int JAVA_CONSTANT = 10;

public VariableExampleClass() {
field = 100;
}

public void changeValues(final int param) {


param = 1; // compile time error

date.setTime(0); // allowed
date = new Date(); // compile time error

final int localVar;


localVar = 42;
localVar = 43; // compile time error

You might also like