Player.java
public class Player {
// インスタンス変数:プレイヤーã®åå‰
private String name;
// インスタンス変数:プレイヤーã®ã‚¹ã‚³ã‚¢
private int score;
// クラス変数:全プレイヤーã«å…±é€šã®æœ€é«˜ã‚¹ã‚³ã‚¢
private static int highScore = 0;
// コンストラクタ:åå‰ã‚’åˆæœŸåŒ–ã€ã‚¹ã‚³ã‚¢ã¯0ã®ã¾ã¾
public Player(String name) {
this.name = name;
this.score = 0;
}
// スコアを更新ã—ã€å¿…è¦ã«å¿œã˜ã¦ highScore ã‚‚æ›´æ–°ã™ã‚‹
public void setScore(int newScore) {
this.score = newScore;
// 最高スコアを上回ã£ã¦ã„ã‚Œã°æ›´æ–°
if (newScore > highScore) {
highScore = newScore;
}
}
// プレイヤーã®ã‚¹ã‚³ã‚¢æƒ…å ±ã‚’å‡ºåŠ›
public void display() {
System.out.println(name + " ã®ã‚¹ã‚³ã‚¢: " + score + "(ç¾åœ¨ã®æœ€é«˜ã‚¹ã‚³ã‚¢: " + highScore + ")");
}
}
Main.java
public class Main {
public static void main(String[] args) {
Player p1 = new Player("Alice");
Player p2 = new Player("Bob");
p1.setScore(50);
p1.display(); // Alice ã®ã‚¹ã‚³ã‚¢: 50(ç¾åœ¨ã®æœ€é«˜ã‚¹ã‚³ã‚¢: 50)
p2.setScore(80);
p2.display(); // Bob ã®ã‚¹ã‚³ã‚¢: 80(ç¾åœ¨ã®æœ€é«˜ã‚¹ã‚³ã‚¢: 80)
p1.setScore(100);
p1.display(); // Alice ã®ã‚¹ã‚³ã‚¢: 100(ç¾åœ¨ã®æœ€é«˜ã‚¹ã‚³ã‚¢: 100)
}
}
å®Ÿè¡Œçµæžœ
Alice ã®ã‚¹ã‚³ã‚¢: 50(ç¾åœ¨ã®æœ€é«˜ã‚¹ã‚³ã‚¢: 50)
Bob ã®ã‚¹ã‚³ã‚¢: 80(ç¾åœ¨ã®æœ€é«˜ã‚¹ã‚³ã‚¢: 80)
Alice ã®ã‚¹ã‚³ã‚¢: 100(ç¾åœ¨ã®æœ€é«˜ã‚¹ã‚³ã‚¢: 100)
解説
ã“ã®æœ€çµ‚ステップã§ã¯ã€ã€Œstaticã¨éžstaticã®è¨è¨ˆçš„ãªä½¿ã„分ã‘ã€ã‚’çµ±åˆçš„ã«ç†è§£ã—ã¾ã™ã€‚
score ã¯ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ï¼ˆéžstatic)
- å„プレイヤー㌠自分専用ã®ã‚¹ã‚³ã‚¢ ã‚’æŒã£ã¦ã„ã‚‹
- ã ã‹ã‚‰
private int score;ã¯éžstatic p1ã®ã‚¹ã‚³ã‚¢ã¨p2ã®ã‚¹ã‚³ã‚¢ã¯å®Œå…¨ã«ç‹¬ç«‹ã—ã¦å˜åœ¨ã™ã‚‹
highScore ã¯static変数(クラス全体ã§å…±æœ‰ï¼‰
- 「最高スコアã€ã¯ã‚²ãƒ¼ãƒ 全体ã§1ã¤ã ã‘å˜åœ¨ã™ã‚Œã°ã„ã„
- ã©ã®ãƒ—レイヤーãŒã‚¹ã‚³ã‚¢ã‚’æ›´æ–°ã—ã¦ã‚‚ã€æ¡ä»¶ã«å¿œã˜ã¦
highScoreã«åæ˜ ã•れる
setScore() ã®ãƒã‚¸ãƒƒã‚¯ã«è¨è¨ˆã®æ„図を込ã‚ã‚‹
if (newScore > highScore) {
highScore = newScore;
}
- ã“ã®ä¸€è¡ŒãŒã€ã€Œå…¨ä½“ã§å…±æœ‰ã•れる記録を管ç†ã™ã‚‹ã€ã¨ã„ㆠstatic ã®æ„味ã¨è²¬ä»»ã‚’表ã—ã¦ã„ã‚‹
staticを使ã†ã“ã¨ã«ã‚ˆã£ã¦ã€ã€Œè¨è¨ˆã§ã‚³ãƒ¼ãƒ‰ã«æ„図を刻むã€ã“ã¨ãŒã§ãã‚‹
ã¾ã¨ã‚
- インスタンスã”ã¨ã®æƒ…å ±ï¼ˆ
name,score)ã¯éžstaticã§æŒã¤ã¹ã - 全体ã§1ã¤ã—ã‹å˜åœ¨ã—ãªã„æƒ…å ±ï¼ˆ
highScore)ã¯staticã§æŒã¤ã¹ã staticを使ã†ã‹ã©ã†ã‹ã¯ã€Œå€¤ã‚’共有ã™ã¹ãã‹ã©ã†ã‹ã€ã§åˆ¤æ–ã™ã‚‹- è¨è¨ˆæ„図をコードã«åˆ»ã‚€â”€â”€ãれãŒstatic修羅é“ã®ã‚´ãƒ¼ãƒ«
104 ステップアップå•題 「static修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€Œstatic修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// 大丈夫。書ã„ãŸã‚ªãƒ¬ã‚‚昔ã¤ã¾ãšã„ãŸã€‚ã ã‹ã‚‰æ®‹ã—ã¦ã‚る。
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント