diff --git a/core-java-8/src/main/java/com/baeldung/doublecolon/Computer.java b/core-java-8/src/main/java/com/baeldung/doublecolon/Computer.java index 6d0172f52b..9535740309 100644 --- a/core-java-8/src/main/java/com/baeldung/doublecolon/Computer.java +++ b/core-java-8/src/main/java/com/baeldung/doublecolon/Computer.java @@ -44,6 +44,18 @@ public class Computer { this.healty = healty; } + public void turnOnPc() { + System.out.println("Computer turned on"); + } + + public void turnOffPc() { + System.out.println("Computer turned off"); + } + + public Double calculateValue(Double initialValue) { + return initialValue/1.50; + } + @Override public String toString() { return "Computer{" + "age=" + age + ", color='" + color + '\'' + ", healty=" + healty + '}'; diff --git a/core-java-8/src/main/java/com/baeldung/doublecolon/MacbookPro.java b/core-java-8/src/main/java/com/baeldung/doublecolon/MacbookPro.java new file mode 100644 index 0000000000..673429132a --- /dev/null +++ b/core-java-8/src/main/java/com/baeldung/doublecolon/MacbookPro.java @@ -0,0 +1,35 @@ +package com.baeldung.doublecolon; + +import java.util.function.Function; + + +public class MacbookPro extends Computer{ + + public MacbookPro(int age, String color) { + super(age, color); + } + + public MacbookPro(Integer age, String color, Integer healty) { + super(age, color, healty); + } + + @Override + public void turnOnPc() { + System.out.println("MacbookPro turned on"); + } + + @Override + public void turnOffPc() { + System.out.println("MacbookPro turned off"); + } + + @Override + public Double calculateValue(Double initialValue){ + + Function function = super::calculateValue; + final Double pcValue = function.apply(initialValue); + System.out.println("First value is:" +pcValue); + return pcValue + (initialValue/10) ; + + } +} diff --git a/core-java-8/src/test/java/com/baeldung/doublecolon/TestComputerUtils.java b/core-java-8/src/test/java/com/baeldung/doublecolon/TestComputerUtils.java index e9fe8aac85..06cf1cf749 100644 --- a/core-java-8/src/test/java/com/baeldung/doublecolon/TestComputerUtils.java +++ b/core-java-8/src/test/java/com/baeldung/doublecolon/TestComputerUtils.java @@ -22,7 +22,7 @@ public class TestComputerUtils { } @Test - public void testFilter() { + public void testConstructorReference() { Computer c1 = new Computer(2015, "white"); Computer c2 = new Computer(2009, "black"); @@ -53,7 +53,7 @@ public class TestComputerUtils { } @Test - public void testRepair() { + public void testStaticMethodReference() { Computer c1 = new Computer(2015, "white", 35); Computer c2 = new Computer(2009, "black", 65); @@ -66,4 +66,24 @@ public class TestComputerUtils { Assert.assertEquals("Computer repaired", new Integer(100), c1.getHealty()); } + @Test + public void testInstanceMethodArbitraryObjectParticularType() { + + Computer c1 = new Computer(2015, "white", 35); + Computer c2 = new MacbookPro(2009, "black", 65); + List inventory = Arrays.asList(c1, c2); + inventory.forEach(Computer::turnOnPc); + + } + + @Test + public void testSuperMethodReference() { + + final TriFunction integerStringIntegerObjectTriFunction = MacbookPro::new; + final MacbookPro macbookPro = integerStringIntegerObjectTriFunction.apply(2010, "black",100); + Double initialValue=new Double(999.99); + final Double actualValue = macbookPro.calculateValue(initialValue); + Assert.assertEquals(766.659, actualValue,0.0); + } + }