2016-11-26 6 views
-1

私が行っている課題について質問があります。私は「私はユーザプロファイルを作成するためのシンプルなJavaコンストラクタとセッター

import java.util.Scanner; 


public class MyBookDriver { 

    private static final Scanner KBD = new Scanner(System.in); 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) {   
     // Constructors 
     MyBookAccount bbSheldon = new MyBookAccount("Sheldon", true); 
     MyBookAccount bbPenny = new MyBookAccount("Penny", false); 
     MyBookAccount bbAmy = new MyBookAccount("Amy", "Montreal", true); 
     MyBookAccount bbLeonard = new MyBookAccount("Leonard"); 
     System.out.println("\n" + MyBookAccount.getNumAccounts() 
       + " MyBook accounts have been created."); 

     // Mybook ID 
     System.out.println("\nMyBook Accounts:"); 
     System.out.println(" Sheldon's ID: " + bbSheldon.ID); 
     System.out.println(" Penny's ID: " + bbPenny.ID); 
     System.out.println(" Amy's ID: " + bbAmy.ID); 
     System.out.println(" Leonard's ID: " + bbLeonard.ID); 
     pause(); 

     // logged in 
     System.out.println("\nMyBook Accounts:"); 
     System.out.println(" Sheldon is " 
       + (bbSheldon.isLoggedIn() ? "" : "not ") + "logged in"); 
     System.out.println(" Penny is " 
       + (bbPenny.isLoggedIn() ? "" : "not ") + "logged in"); 
     System.out.println(" Amy is " 
       + (bbAmy.isLoggedIn() ? "" : "not ") + "logged in"); 
     System.out.println(" Leonard is " 
       + (bbLeonard.isLoggedIn() ? "" : "not ") + "logged in"); 
     pause(); 

     //post a wall message 
     System.out.println("\nPosting wall update:"); 
     bbSheldon.setWallPost("I like flags!"); 
     bbPenny.setWallPost("Looking for a job."); 
     bbLeonard.setWallPost("I'm just hoping I can date a girl " 
       + "from next door."); 
     System.out.println(" Sheldon's: " + bbSheldon.getWallPost() + "\n" 
       + " Penny's: " + bbPenny.getWallPost() + "\n" 
       + " Amy's: " + bbAmy.getWallPost() + "\n" 
       + " Leonard's: " + bbLeonard.getWallPost() + "\n"); 
     pause(); 

     //Sending messages 
     System.out.println("\nSending messages:"); 
     bbLeonard.sendMessage(bbPenny, "Will you go out with me tonight?"); 
     bbAmy.sendMessage(bbSheldon, "Neuroscience is a real science."); 
     bbPenny.sendMessage(bbAmy, "What a nice picture."); 
     checkMessages(bbSheldon); 
     checkMessages(bbPenny); 
     checkMessages(bbAmy); 
     checkMessages(bbLeonard); 
     pause(); 

     //toString 
     System.out.println("\nDisplaying info:"); 
     System.out.println(bbSheldon); 
     System.out.println(bbPenny); 
     System.out.println(bbAmy); 
     System.out.println(bbLeonard); 
     pause(); 
    } 

    private static void checkMessages(MyBookAccount user) { 
     MyBookAccount aFriend; 
     aFriend = user.getFriend(); 
     if (aFriend != null) { 
      System.out.println(" " + user.getName() + "'s message from " 
        + aFriend.getName() 
        + " is " + user.getMessage()); 
     } else { 
      System.out.println(" " + user.getName() + " has no messages"); 
     } 
    } 

    private static void pause() { 
     System.out.print("\n...press enter..."); 
     KBD.nextLine(); 
    } 

} 

のいずれかの方法は、この名前と、これらのパラメータを取り、二つの性質のためのセッターで、「メッセージ」を求めているものをそうその明確にメインコードと問題のメソッドを提供してます友人 "

sendMessage(MyBookAccount to, String message) 

複数のプロパティを操作するセッターはどうすれば作れますか?

+0

あなたは 'this.friend = to; this.message = message; '? – 4castle

+0

なぜ「複数のプロパティを操作するセッターを作ろう」と思っていますか?適切なセッターを呼び出す(またはフィールドを直接更新する)2つのデータを受け入れるメソッドを作成します。 – Bohemian

+0

私は彼が "セッター"の意味を知らないと思う。彼が話している仮の 'sendMessage'メソッドはセッターのようには機能しません。 –

答えて

1

私は、複数のプロパティを操作するための設定を行いません。これはあなたのコードを混乱させ、将来的には維持するのが難しくなる可能性があります。代わりにこれを行うことができる方法を作る方が良いでしょう。各フィールドのセッターを作成し、必要な方法でそれらを操作するメソッドがあります。

関連する問題