Содержит ли это полиморфные ссылки? Если нет, то как это можно реализовать?

#java #polymorphism

#java #полиморфизм

Вопрос:

Я не слишком знаком с полиморфизмом, и мне было интересно, использую ли я его в своем коде?

Если это не содержит полиморфной ссылки, не могли бы вы указать мне направление, куда мне нужно идти? Файлы, которые использует программа, не включены, так как мне в основном интересно, используются ли какие-либо полиморфные ссылки.

java file 1 — этот файл запускает программу

 import java.util.Scanner;

public class ADTDemo {

   ADTDictionary dictionary;
   
   public static void menu() {

       System.out.println("Welcome the Faculty Directory Program");
       System.out.println("  Use commands:");
       System.out.println("  list all");
       System.out.println("  list DEPT_NAME");
       System.out.println("  add DEPT_NAME, FIRST LAST");
       System.out.println("  remove DEPT_NAME, FIRST LAST");
       System.out.println("  exit");
   }

   public static void main(String[] args) {
       menu();
       String command;
       ADTDemo dictObj = new ADTDemo();
       dictObj.dictionary = new ADTDictionary();
       dictObj.dictionary.read();
       Scanner scanner = new Scanner(System.in);
       
       do {
           System.out.println("");

           System.out.print(">>");
           command = scanner.nextLine().trim();

           if (!command.equals("exit")) {
               dictObj.action(command);
           } else {
               dictObj.dictionary.saveEntries();
               System.out.println("Goodbye! Have a nice day!");
           }

       } while (!command.equalsIgnoreCase("exit"));
   }

   public void action(String command) {
       if (command.equalsIgnoreCase("LIST ALL")) {

           dictionary.listAll();
           return;
       }
       else if (command.toUpperCase().contains("LIST")) {
           if (command.length() == 4){
               System.out.println("Command needed.");
               return;
           }
           command = command.substring(5, command.length());
           dictionary.listDeptName(command);
           return;
       }
       else if (command.toUpperCase().contains("ADD")) {
           command = command.substring(4, command.length());
           dictionary.add(command);
           return;
       }
       else if (command.toUpperCase().contains("REMOVE")) {
           command = command.substring(6, command.length());
           dictionary.remove(command);
       }
   }
}
 

java-файл 2

 import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

public class ADTDictionary {
   Map<String, List<String>> adtDictionary;
   
   public void read() {
       try {
           File facultyFile = new File("faculty.txt");
           File departmentFile = new File("departments.txt");
           
           Scanner departmentScanner = new Scanner(departmentFile);
           Scanner facultyScanner = new Scanner(facultyFile);

           adtDictionary = new HashMap<String, List<String>>();

           while (departmentScanner.hasNextLine()) {
               String department = departmentScanner.nextLine().trim();
               adtDictionary.put(department, new ArrayList<String>());
           }

           while (facultyScanner.hasNextLine()) {
               String faculty = facultyScanner.nextLine();
               String[] values = faculty.split(",");
               adtDictionary.get(values[1].trim()).add(values[0]);
           }

       } catch (FileNotFoundException ex) {
            System.out.println("ERROR: File not found.");
       }
   }

   public void listAll() {
       for (String key : adtDictionary.keySet()) {
           for (String value : adtDictionary.get(key)) {
               System.out.println(value   ", "   key);
           }
       }
   }
   
   public void listDeptName(String department) {
       if (null != adtDictionary.get(department)) {
           for (String name : adtDictionary.get(department)) {
               System.out.println(name);
           }
       }
       else{
           System.out.println("Unknown entry made.");
       }
   }

   public void add(String value) {
       if(!value.contains(",")){
           System.out.println("Incorrect entry.");
           return;
       }
       String[] values = value.split(",");
       String dept = values[0].trim();
       String faculty = values[1].trim();
       
       String[] facName = faculty.split(" ");
       
       if (!(facName.length == 2)){
           System.out.println("Please only enter First and Last name of faculty member.");
           return;
       }
        
        if (!(null != adtDictionary.get(dept))) {
            if(adtDictionary.containsKey(dept.toUpperCase())){
                System.out.println("Incorrect departtment entry.");
                return;
            }
            else if (dept == dept.toUpperCase()){
                adtDictionary.put(dept, new ArrayList<String>());
            }
            else{
                System.out.println("Incorrect department entry.");
                return;
            }
        }
        
       for (String name : adtDictionary.get(dept)) {
           if (name.equalsIgnoreCase(faculty)) {
               System.out.println("Cannot add "   name   " to "   dept   " because they already exist there.");
               return;
           }
       }
       adtDictionary.get(dept).add(faculty);
       System.out.println("OK, added "   faculty);
   }

   public void remove(String value) {
       String[] values = value.split(",");
       String dept = values[0].trim();
       String faculty = values[1].trim();
       
       adtDictionary.get(dept).remove(faculty);
       System.out.println("OK, removed "   faculty   " from "   dept);
   }
   
   public void saveEntries(){
       try {
            File facultyFile = new File("faculty.txt");
            File departmentFile = new File("departments.txt");
            
            PrintWriter facWriter = new PrintWriter(facultyFile);
            PrintWriter deptWriter = new PrintWriter(departmentFile);
            
            for (Object s : adtDictionary.keySet()) {
                deptWriter.println(s);
            }
            deptWriter.close();
                
                
            for (String key : adtDictionary.keySet()) {
                for (String value : adtDictionary.get(key)) {
                    facWriter.println(value   ", "   key);
                }
            }
            facWriter.close();
        }
        catch (IOException ex){
                System.out.println("ERROR saving file.");
        }
   }
}

 

Комментарии:

1. Поскольку я не до конца понимаю тему полиморфизма, это, к сожалению, не имеет для меня смысла.

2. Проверьте это