Java >> Java tutorial >  >> Tag >> implements

Java implementerer søgeordseksempel

1. Introduktion

Denne artikel introducerer implements nøgleordet, behovet og dets anvendelser i Java. Den starter med en kort introduktion og forklarer den ved hjælp af et eksempel.

2. Hvad er søgeordet Java Implements

Java er et objektorienteret programmeringssprog. Som ethvert andet OOP-sprog understøtter Java nedarvning, den væsentlige funktion til genbrug af kode. Java understøtter ikke udvidelse af flere basisklasser. Vi har dog brug for ethvert objekt for at antage mere end én form (polymorfi), når vi interagerer med mange objekter, så de passer til konteksten. Det er, når nøgleordet "implementerer" kommer til undsætning.

For information om grænseflader henvises til Java-dokumentationen.

I dette indlæg vil vi tage et problem fra den virkelige verden og prøve at løse ved hjælp af redskaber.

3. Pizzarestaurant – historien

Lad os overveje et eksempel på en pizzarestaurant, der bruger en salgsautomat til at levere pizzaer. En salgsautomat er påkrævet for at tilberede forskellige varianter af pizzaer, herunder tynd-skorpe pizza, tyk-skorpe og ost-blast pizza.

For at gøre det mere interessant, lad os overveje, at vi har brug for automaten til at forberede forskellige landespecifikke versioner af pizzaer, herunder græsk pizza og californisk pizza til at starte med.

4. Eksempel på implementerer søgeord

4.1 Interfaces

I forbindelse med pizza ovenfor bør en pizzaautomat antage en pizzamaskine til pizzaelskere og en drinksmaskine til drinksene.

Derfor kan vi tænke på en grænseflade BakePizza som lister alle metoderne til at bage en pizza. Her er koden til BakePizza-grænsefladen:

BakePizza.java
package com.javacodegeeks.examples;

/**
 * This is the interface for baking pizzas.
 * 
 * @author Shivakumar Ramannavar 
 */
public interface BakePizza {
	
	void preparePizza(String pizzaType, String ... ingredients);
	
}

Vi kan også tænke på en anden grænseflade til at servere en drink. Enhver maskine, der er i stand til at tilberede en drink, skal kalde implementeringerne af PrepareDrink grænseflade.

PrepareDrinks.java
package com.javacodegeeks.examples;

/**
 * This is the interface for preparing drinks.
 * 
 * @author Shivakumar Ramannavar
 */
public interface PrepareDrinks {
	
	void prepareDrink(String drinkTtype);

}

4.2 Implementeringer af BakePizza

Ifølge historien er automaten forpligtet til at lave forskellige slags pizzaer. Derfor er her implementeringerne af BakePizza :GreekPizza.java

package com.javacodegeeks.examples;

/**
 * This is the Greek-style implementation of Bake Pizza interface.
 * 
 * @author Shivakumar Ramannavar
 *
 */
public class GreekPizza implements BakePizza {

	/* (non-Javadoc)
	 * @see com.javacodegeeks.examples.BakePizza#preparePizza(java.lang.String, java.lang.String[])
	 */
	@Override
	public void preparePizza(String pizzaType, String... toppings) {
		System.out.println("\tPreparing the " + pizzaType + " pizza in a Greek style ...");
		System.out.println("\tPutting it into the oven ...");
		System.out.println("\tThe pizza is baked!");
		System.out.println("\tTake your pizza!\n");
	}
}
CaliforniaPizza.java
package com.javacodegeeks.examples;

/**
 * This is the California-style implementation of Bake Pizza interface.
 * 
 * @author Shivakumar Ramannavar
 */
public class CaliforniaPizza implements BakePizza {
	
	/* (non-Javadoc)
	 * @see com.javacodegeeks.examples.BakePizza#preparePizza(java.lang.String, java.lang.String[])
	 */
	@Override
	public void preparePizza(String pizzaType, String... toppings) {
		System.out.println("\tPreparing the " + pizzaType + " pizza in a California style ...");
		System.out.println("\tPutting it into the oven ...");
		System.out.println("\tThe pizza is baked!");
		System.out.println("\tTake your pizza!\n");
	}
}

4.3 Flere grænseflader

Som en tilføjelse til historien har restauranten besluttet at tilbyde pink limonade-drinks sammen med pizzaerne kun til mexicanske pizzaer. Enhver maskine, der er i stand til at tilberede en drink, skal kalde implementeringerne af PrepareDrinks interface.

Da MexicanPizza er i stand til at tilberede både pizzaer og drinks, er klassen MexicanPizza skal implementere begge grænseflader – BakePizza og PrepareDrinks . Her er et eksempel på en klasse, der implementerer flere grænseflader.

Her er MexicanPizza klasse implementerer to grænseflader –BakePizza og PrepareDrink . Her er klasseimplementeringen:MexicanPizza.java

package com.javacodegeeks.examples;

/**
 * This is the Mexican-style implementation of Bake Pizza interface.
 * 
 * @author Shivakumar Ramannavar
 *
 */
public class MexicanPizza implements BakePizza, PrepareDrinks {

	/* (non-Javadoc)
	 * @see com.javacodegeeks.examples.
	 *       BakePizza#preparePizza(java.lang.String, java.lang.String[])
	 */
	@Override
	public void preparePizza(String pizzaType, String... toppings) {
		System.out.println("\tPreparing the " + pizzaType 
                + " pizza in a Mexican style ...");
		System.out.println("\tPutting it into the oven ...");
		System.out.println("\tThe pizza is baked!");
		System.out.println("\tTake your pizza!\n");
	}
	
	/*
	 * (non-Javadoc)
	 * @see com.javacodegeeks.examples.PrepareDrinks#prepareDrink(java.lang.String)
	 */
	@Override
	public void prepareDrink(String drinkType) {
		System.out.println("\tPreparing the " + drinkType 
                + " drink in a Mexican style ...");
		System.out.println("\tPutting it into the cup ...");		
		System.out.println("\tTake your drink!\n");		
	}
}

5. Sæt dem i gang

Her er PizzaVendingMachine klasse, som simulerer kunder, der kommer til en pizzarestaurant. For at gøre det enkelt har vi ordnet toppings og typen af ​​pizzaskorpe.

Denne klasse leveres med giveMePizza() metode, som foretager en række kald til hver af implementeringerne af BakePizza interface.

For den mexicanske pizza-stil simulerer den kunden, der bestiller pink limonade, og den kalder implementeringen af ​​PrepareDrinks interface. Koden til salgsautomat er som følger:PizzaVendingMachine.java

package com.javacodegeeks.examples;

/**
 * This class is just a demo to invoke different 
 * implementations of the interfaces.
 *  
 * @author Shivakumar Ramannavar
 *
 */
public class PizzaVendingMachine {
	
	public void giveMePizza() {
		
		// Make it simple, assume only 3 toppings
		String[] toppings = new String[]{"Onion", "Tomato", "Capscicum"};
		String pizzaType = "Thick Crust";
		
		
		// First customer orders Greek Thick Crust pizza
		System.out.println("Customer ordered "
				+ "Greek Thick Crust Pizza");
		
		BakePizza bakePizza = new GreekPizza();			
		bakePizza.preparePizza(pizzaType, toppings);
		
		// The next customer orders California Thick Crust pizza
		System.out.println("Customer ordered "
				+ "California Thick Crust Pizza");
		BakePizza californiaPizza = new CaliforniaPizza();		
		californiaPizza.preparePizza(pizzaType, toppings);
		
		// Initialise to serve Coke by default
		String choiceOfDrink = "Pink Lemonade";
		
		// The third customer orders Mexican Thick Crust pizza
		// and a pink lemonade
		System.out.println("Customer ordered Mexican "
				+ "Thick Crust Pizza and a Pink Lemonade");
		BakePizza mexicanPizza = new MexicanPizza();			
		mexicanPizza.preparePizza(pizzaType, toppings);
		
		PrepareDrinks prepareDrinks =  new MexicanPizza();
		prepareDrinks.prepareDrink(choiceOfDrink);
	}

	public static void main(String[] args) {
		PizzaVendingMachine vendingMachine = new PizzaVendingMachine();
		vendingMachine.giveMePizza();
	}	
}

5. Udførelse

I dette afsnit vil vi køre programmerne og se, hvordan det fungerer.

Forudsætninger:

  • Java 1.7 installeret i systemet. Miljøvariabler JAVA_HOME indstillet til Java-placeringen og PATH indstillet til mappen, der indeholder javac- og java-binære filer ( %JAVA_HOME%/bin på Windows eller $JAVA_HOME/bin på Linux-maskiner)
  • Kildekode zip og downloadet til en placering (f.eks. C:\JavaCodeGeeks. Dette ville være anderledes for Linux)
  • Eclipse IDE (Photon Release (4.8.0) bruges til dette eksempel)

5.1 Udførelse ved hjælp af eclipse

Trin 1:Åbn Eclipse IDE.
Trin 2:Klik på Filer>> Importer.
Trin 3:Fra menuen "Importer" vælg "Eksisterende projekter til arbejdsområde".

Trin 4:Klik på Næste.
Trin 5:På den næste side skal du klikke på gennemse og vælge roden af ​​eksempelmappen (f.eks. C:\JavaCodeGeeks). Klik på knappen "Udfør".

Trin 6:Sørg for, at Package Explorer er indlæst og viser alle filerne som vist i figuren nedenfor.
Trin 7:Klik på BakePizza fra Package Explorer og undersøg BakePizza Interface.
Trin 8:Klik på GreekPizza at undersøge implements nøgleordet.
Trin 9:Klik på MexicanPizza at undersøge de mange grænseflader
implementering.

Trin 10:Højreklik på PizzaVendingMachine , fra menuen, vælg
"Kør som">> "Java-applikation"


Se eksempeloutputtet som nedenfor:

Customer ordered Greek Thick Crust Pizza
	Preparing the Thick Crust pizza in a Greek style ...
	Putting it into the oven ...
	The Pizza is baked!
	Take your pizza!

Customer ordered California Thick Crust Pizza
	Preparing the Thick Crust pizza in a California style ...
	Putting it into the oven ...
	The Pizza is baked!
	Take your pizza!

Customer ordered Mexican Thick Crust Pizza and a Pink Lemonade
	Preparing the Thick Crust pizza in a Mexican style ...
	Putting it into the oven ...
	The Pizza is baked!
	Take your pizza!

	Preparing the Pink Lemonade drink in a Mexican style ...
	Putting it into the cup ...
	Take your drink!


6. Download Eclipse Project


Det var en tutorial om Java implements søgeord.


Java tag