Orienté objet avec Strike Gundam (java)

introduction

Créé pour l'apprentissage orienté objet. J'ai imaginé l'assemblage de Strike Gundam et Strike Dagger, et l'ai créé avec les caractéristiques communes de chacun à l'esprit.

procédure

Créé par la procédure suivante.

  1. Créer une interface → Trois types de kits percuteurs sont utilisés comme interfaces.
  2. Créer une super classe → Le cadre de la série X100 est une super classe.
  3. Créer une sous-classe → Strike Gundam et Strike Dagger sont des sous-classes.
  4. Créer une classe Factory → Créez une instance dans la classe Factory et décrivez comment appeler la méthode.

Créer une interface

Créez la bière, l'épée et le lanceur sous la forme d'une interface et décrivez chaque armement comme suit.

Striker.java


package practice;

public interface Striker {
	
	String[] arrayAile = {"Fusil à faisceau haute énergie de 57 mm", "Sabre à poutre", "Écran anti-faisceau"};
	String[] arraySword = {"15.Épée anti-navire 78m "Schwert Geber"", "Beam Boomerang "Midas Messer"", "Ancre de fusée "Panzer Eisen""};
	String[] arrayLauncher = {"Canon à impulsion ultra-haute de 320 mm "Agni"", "Canon anti-navire des Balkans de 120 mm", "Lanceur d'armes à feu de 350 mm"};

}

Créer une super classe

Strike Gundam et Strike Dagger utilisent le cadre de la série X100 comme squelette de base. Une autre caractéristique est le système du Striker Pack. Décrivez ces fonctionnalités dans X100frame.java comme suit.

X100frame.java


package practice;

//Puisqu'il est supposé qu'il sera hérité, il est abstrait.
public abstract class X100frame {
	private String name = "";
	private String type = "Cadre de la série X100";
	private String feature = "Système Striker Pack";
	
	public X100frame(String name) {
		this.name = name;
	}
	
	public String getName() {
		return this.name;
	}
	
	public String getType() {
		return this.type;
	}
	
	public String getFeature() {
		return this.feature;
	}

    public void list() {
		System.out.println("Liste armée:");
		System.out.println("-------------------------");
	}

//Comme il sera remplacé du côté de la sous-classe, écrivez une méthode vide
    public abstract void printData();
	public abstract void printDataPersonal();
    public abstract void printDataAile();
	public abstract void printDataSword();
	public abstract void printDataLauncher();
	
}

Créer une sous-classe

Créez Strike Gundam comme classe STRIKE et Strike Dagger comme classe DAGGER. À ce moment-là, héritez de la classe X100frame afin que les trois interfaces créées à l'étape 1 puissent également être utilisées.

STRIKE.java


package practice;

//Hériter de la classe X100frame et activer l'interface Striker
public class STRIKE extends X100frame implements Striker {

	public STRIKE() {super("Frapper Gundam"); }
//Caractéristiques de la grève nue uniquement
	private String Model = "GAT-X105";
	private String Armor = "Armure à décalage de phase";
	private double height = 17.72;
	private double weight = 64.80;
	private String WEAPON[] = {"Egerstern", "Armure Schneider"};

//Une méthode pour afficher les caractéristiques d'une frappe simple
    @Override
	public void printData() {
		System.out.println("Nom de la combinaison mobile:" + this.getName());
		System.out.println("Numéro de modèle:" + this.Model);
    //Les cadres et les fonctionnalités héritent de la classe X100frame
		System.out.println("flamme:" + this.getType());
		System.out.println("Fonctionnalité:" + this.getFeature());
		System.out.println("Armure:" + this.Armor);
		System.out.println("Hauteur totale:" + this.height + "m");
		System.out.println("poids:" + this.weight + "t");
		System.out.println();
	}

    @Override
	public void printDataPersonal() {
		for(int a = 0; a < WEAPON.length; a++ ) {
			System.out.print(WEAPON[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}

//Sort l'armement lorsqu'il est équipé d'un pack de percuteurs
    @Override
	public void printDataAile() {
		for(int a = 0; a < arrayAile.length; a++ ) {
			System.out.print(arrayAile[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}
	
	@Override
	public void printDataSword() {
		for(int a = 0; a < arraySword.length; a++ ) {
			System.out.print(arraySword[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}
	
	@Override
	public void printDataLauncher() {
		for(int a = 0; a < arrayLauncher.length; a++ ) {
			System.out.print(arrayLauncher[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}
	
}

Frapper Gundam

DAGGER.java


package practice;

//Hériter de la classe X100frame et activer l'interface Striker
public class DAGGER extends X100frame implements Striker {

	public DAGGER() {super("Dague de frappe"); }
//Caractéristiques du poignard nu uniquement
	private String Model = "GAT-01A1";
	private String Armor = "Armure laminée (corps uniquement)";
	private double height = 18.00;
	private double weight = 57.05;
	private String WEAPON[] = {"Egerstern", "Pod de mitrailleuse de 52 mm", "Carbine à poutre", "12.Mitrailleuse interpersonnelle 5 mm x 2"};

//Méthode pour afficher les caractéristiques de la dague de frappe simple uniquement
    @Override
	public void printData() {
		System.out.println("Nom de la combinaison mobile:" + this.getName());
		System.out.println("Numéro de modèle:" + this.Model);
    //Les cadres et les fonctionnalités héritent de la classe X100frame
		System.out.println("flamme:" + this.getType());
		System.out.println("Fonctionnalité:" + this.getFeature());
		System.out.println("Armure:" + this.Armor);
		System.out.println("Hauteur totale:" + this.height + "m");
		System.out.println("poids:" + this.weight + "t");
		System.out.println();
	}

    @Override
	public void printDataPersonal() {
		for(int a = 0; a < WEAPON.length; a++ ) {
			System.out.print(WEAPON[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}

//Sort l'armement lorsqu'il est équipé d'un pack de percuteurs
    @Override
	public void printDataAile() {
		for(int a = 0; a < arrayAile.length; a++ ) {
			System.out.print(arrayAile[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}
	
	@Override
	public void printDataSword() {
		for(int a = 0; a < arraySword.length; a++ ) {
			System.out.print(arraySword[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}
	
	@Override
	public void printDataLauncher() {
		for(int a = 0; a < arrayLauncher.length; a++ ) {
			System.out.print(arrayLauncher[a] + " ");
			}
		System.out.println();
		System.out.println("------------");
	}
	
}

Dague de frappe

Créer une classe Factory

Créez une instance et appelez chaque méthode.

Factory.java


package practice;

public class Factory {
	
	public static void main(String[] args) {
		STRIKE s = new STRIKE();
		DAGGER d = new DAGGER();
		s.printData();
		s.list();
		s.printDataPersonal();
		s.printDataAile();
		s.printDataSword();
		s.printDataLauncher();
		System.out.println();
		d.printData();
		d.list();
		d.printDataPersonal();
		d.printDataAile();
		d.printDataSword();
		d.printDataLauncher();
	}
	
}

Résultat de sortie

C'était une sortie comme ça.

Nom de la combinaison mobile: Strike Gundam
Numéro de modèle: GAT-X105
Cadre: cadre de la série X100
Caractéristiques: système Striker Pack
Armure: armure à changement de phase
Hauteur hors tout: 17.72m
Poids: 64.8t

Liste armée:
-------------------------
Armure éternelle Schneider
------------
Sabre à faisceau de fusil à haute énergie de 57 mm contre bouclier
------------
15.78m épée anti-navire "Schwert Geber" Boomeran à poutre "Midas Messer" Ancre de fusée "Panzer Eisen"
------------
Canon à impulsion ultra-haute de 320 mm "Agni" Canon anti-navire de 120 mm des Balkans Lanceur de canon de 350 mm
------------

Nom de la combinaison mobile: Strike Dagger
Numéro de modèle: GAT-01A1
Cadre: cadre de la série X100
Caractéristiques: système Striker Pack
Armure: armure laminée (corps uniquement)
Hauteur hors tout: 18.0m
Poids: 57.05t

Liste armée:
-------------------------
Egerstern 52mm Machine Gun Pod Beam Carbin 12.Mitrailleuse interpersonnelle 5 mm x 2
------------
Sabre à faisceau de fusil à haute énergie de 57 mm contre bouclier
------------
15.78m épée anti-navire "Schwert Geber" Boomeran à poutre "Midas Messer" Ancre de fusée "Panzer Eisen"
------------
Canon à impulsion ultra-haute de 320 mm "Agni" Canon anti-navire de 120 mm des Balkans Lanceur de canon de 350 mm
------------

C'est tout.

Recommended Posts

Orienté objet avec Strike Gundam (java)
[Java] Orienté objet
FizzBuzz orienté objet (Java)
[Java] Résumé orienté objet_Partie 1
[Java] Syntaxe orientée objet --Constructeur
Notions de base orientées objet (Java)
[Java] Résumé orienté objet_Partie 2
[Java] Syntaxe orientée objet --Package
Installez java avec Homebrew
Changer de siège avec Java
Installez Java avec Ansible
Téléchargement confortable avec JAVA
Changer java avec direnv
Téléchargement Java avec Ansible
Raclons avec Java! !!
Construire Java avec Wercker
Conversion Endian avec JAVA
(Java) BDD facile avec Spectrum?
Utiliser des couches Lambda avec Java
Créer un multi-projet Java avec Gradle
Premiers pas avec Java Collection
Configuration Java avec Spring MVC
Authentification de base avec Java 11 HttpClient
Vérifier la conformité avec les exercices orientés objet
Expérimentons l'expansion en ligne Java
Exécuter un lot avec docker-compose avec Java batch
[Template] Connexion MySQL avec Java
Réécrire Java try-catch avec facultatif
Installez Java 7 avec Homebrew (cask)
[Java] Communication JSON avec jackson
Java pour jouer avec Function
Activer Java EE avec NetBeans 9
[Java] JavaConfig avec classe interne statique
Exploitons Excel avec Java! !!
Gestion des versions Java avec SDKMAN
Cryptage / décryptage RSA avec Java 8
Pagination de PDF avec Java + PDFBox.jar
Résumé orienté objet par les débutants (Java)
[Java] Acquisition de contenu avec HttpCliient
Gestion des versions Java avec jenv
Dépannage avec Java Flight Recorder
Mémorandum des éléments majeurs de Java 3 (orienté objet)
Rationalisez les tests Java avec Spock
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
Erreur lors de la lecture avec java
Utilisation de Mapper avec Java (Spring)
Mémo d'étude Java 2 avec Progate
Premiers pas avec les bases de Java
Affichage saisonnier avec commutateur Java
Utiliser SpatiaLite avec Java / JDBC
Étudier Java avec Progate Note 1
Comparez Java 8 en option avec Swift
Analyse HTML (scraping) avec JAVA
Exécuter Java VM avec Web Assembly
Transition d'écran avec swing, java
Test unitaire Java avec Mockito
[Java 8] Suppression en double (et vérification en double) avec Stream
Expression lambda Java apprise avec Comparator
Construire un projet Java avec Gradle
Installer Java avec Docker basé sur Ubuntu 16.04