запись строки в логическое значение из записи с помощью getter / setter - PullRequest
0 голосов
/ 23 ноября 2018

[редактировать], когда я запускаю текущую программу и ввод "Бристоль", он выводит

"Бристоль управляется Great Western и имеет ложное"

мне нужно сказать, что "Бристольуправляется Great Western и не имеет свободного доступа к шагу "

Я должен использовать Boolean для StepFreeAccess, при запуске он должен выводить" Bristol управляется Great Western иимеет свободный доступ без шага"Нужен способ, где:

  • s1 = setAccess (s1, false);
  • s2 = setAccess (s2, true);
  • s3 = setAccess (s3, true);

изменяется на String, т.е. true = "доступ без шага" и false = "доступ без шага".

    import java.util.Scanner;
    public class ex8 {
public static void main (String [] args){
    records s1 = new records();
    records s2 = new records();
    records s3 = new records();

    s1 = setName(s1, "Bristol");
    s2 = setName(s2, "Reading");
    s3 = setName(s3, "York");

    s1 = setCompany(s1,"Great Western");
    s2 = setCompany(s2,"Great Western");
    s3 = setCompany(s3,"Great Eastern");

    s1 = setAccess(s1, false);
    s2 = setAccess(s2, true);
    s3 = setAccess(s3, true);

    Scanner new1 = new Scanner(System.in);
    System.out.println("What station do you need to know about?");
    String answer = new1.nextLine();

    if (answer.equals("Bristol")) {
        System.out.println(s1.station +" is operated by "+ s1.operatingCompany +" and has "+s1.stepFreeAccess);
    }

    else if(answer.equals("Reading")) {
        System.out.println(s2.station +" is operated by "+ s2.operatingCompany +" and has "+s2.stepFreeAccess);
    }

    else if(answer.equals("York")) {
        System.out.println(s3.station +" is operated by "+ s3.operatingCompany +" and has "+s3.stepFreeAccess);
    }
    else {
        System.out.println("I do not know that Station.");
    }
}

// Getter methods   
public static String getName (records s){
    return s.station;
}

public static String getComapny (records s){
    return s.operatingCompany;
}

public static Boolean getAccess (records s) {
    return s.stepFreeAccess;
}
// Setter methods 
public static records setName (records s, String station){
    s.station = station;
    return s;
}

public static records setCompany (records s, String company){
    s.operatingCompany = company;
    return s;
}

public static records setAccess(records s, Boolean access) {
    s.stepFreeAccess = access;
    return s;
}
}



public class records {
String station;
String operatingCompany;
Boolean stepFreeAccess;
}

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

В общем:

Методы получения / установки должны быть в классе с соответствующими полями.Например, метод getAcces () должен быть частью записи класса

public boolean getAcces(){
   return this.stepFreeAccess 
}

public void setAcces(acces){
    this.stepFreeAcces = access;
}

В вашем случае я бы рекомендовал написать конструктор для записей.Конструктор должен требовать Station, OperatingCompany и StepFreeAccess.В конструкторе вы присваиваете соответствующим полям их значения.

Чтобы затем решить свою проблему, вы можете теперь установить метод получения из acces для доставки необходимой строки.

Например:

public String getAccess(){
    if(this.access){
        return *return String for true here*
    }else{
        return *return String for false here*
    }
}
0 голосов
/ 23 ноября 2018

Для Бристоль чехол, вы можете попробовать:

if (answer.equals("Bristol")) {
    String aux = "";

    if (s1.stepFreeAccess) aux = "step free access";
    else aux = "no step free access"; 

    System.out.println(s1.station +" is operated by "+ s1.operatingCompany +" and has "+aux);
}
...