Document.java
public class Document {
// 書類ã®ã‚¿ã‚¤ãƒˆãƒ«ï¼ˆã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã”ã¨ã«ç•°ãªã‚‹ï¼‰
private String title;
// 書類ã®ãƒšãƒ¼ã‚¸æ•°ï¼ˆã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã”ã¨ã«ç•°ãªã‚‹ï¼‰
private int pages;
// 全書類ã§å…±æœ‰ã•れる「åˆè¨ˆãƒšãƒ¼ã‚¸æ•°ã€
private static int totalPages = 0;
// コンストラクタ:タイトルã¨ãƒšãƒ¼ã‚¸æ•°ã‚’å—ã‘å–りã€åˆè¨ˆãƒšãƒ¼ã‚¸æ•°ã«åŠ ç®—
public Document(String title, int pages) {
this.title = title;
this.pages = pages;
// クラス全体ã®åˆè¨ˆã«åŠ ç®—
totalPages += pages;
}
// æ›¸é¡žæƒ…å ±ã‚’å‡ºåŠ›ï¼ˆã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®æƒ…å ±ï¼‹ã‚¯ãƒ©ã‚¹ã®çµ±è¨ˆæƒ…å ±ï¼‰
public void printInfo() {
System.out.println(title + ": " + pages + "ページ(ç¾åœ¨ã®åˆè¨ˆ: " + totalPages + ")");
}
}
Main.java
public class Main {
public static void main(String[] args) {
Document d1 = new Document("書類A", 5);
Document d2 = new Document("書類B", 3);
Document d3 = new Document("書類C", 7);
d1.printInfo();
d2.printInfo();
d3.printInfo();
}
}
å®Ÿè¡Œçµæžœ
書類A: 5ページ(ç¾åœ¨ã®åˆè¨ˆ: 5)
書類B: 3ページ(ç¾åœ¨ã®åˆè¨ˆ: 8)
書類C: 7ページ(ç¾åœ¨ã®åˆè¨ˆ: 15)
解説
ã€Œå€‹åˆ¥ã®æƒ…å ±ã€ã¨ã€Œå…¨ä½“ã®çµ±è¨ˆã€ã‚’使ã„分ã‘ã‚‹
ã“ã®å•題ã®è¨è¨ˆã«ã¯ã€ä»¥ä¸‹ã®2ç¨®é¡žã®æƒ…å ±ãŒå˜åœ¨ã—ã¾ã™ï¼š
pages:ã“ã®æ›¸é¡žã ã‘ã®ãƒšãƒ¼ã‚¸æ•°ï¼ˆã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ï¼‰totalPages:ã™ã¹ã¦ã®æ›¸é¡žã®åˆè¨ˆãƒšãƒ¼ã‚¸æ•°ï¼ˆstatic変数)
ãれãžã‚Œã®æ€§è³ªã«åˆã‚ã›ã¦ã€æ£ã—ã„スコープã§å¤‰æ•°ã‚’è¨è¨ˆã™ã‚‹ã®ãŒãƒã‚¤ãƒ³ãƒˆã§ã™ã€‚
static変数ã®ãµã‚‹ã¾ã„
private static int totalPages = 0;
ã“ã®å¤‰æ•°ã¯ã‚¯ãƒ©ã‚¹å…¨ä½“ã§1ã¤ã ã‘å˜åœ¨ã—ã€new Document(...) ã™ã‚‹ãŸã³ã«ãƒšãƒ¼ã‚¸æ•°ãŒåŠ ç®—ã•れã¦ã„ãã¾ã™ã€‚
ã¤ã¾ã‚Šã€å…¨ä½“ã®çŠ¶æ…‹ï¼ˆçµ±è¨ˆæƒ…å ±ï¼‰ã‚’è¨˜éŒ²ã™ã‚‹å½¹å‰²ã‚’æ‹…ã£ã¦ã„ã‚‹ã‚ã‘ã§ã™ã€‚
インスタンスã®å½¹å‰²ã¨staticã®å½¹å‰²ã‚’è¨è¨ˆã§åˆ†é›¢ã™ã‚‹
- インスタンス変数:ãã®ã‚ªãƒ–ジェクトã ã‘ãŒæŒã¤æƒ…å ±ï¼ˆãƒšãƒ¼ã‚¸æ•°ã€ã‚¿ã‚¤ãƒˆãƒ«ãªã©ï¼‰
- static変数:クラス全体ã§å…±æœ‰ã™ã‚‹æƒ…å ±ï¼ˆåˆè¨ˆã€IDカウンタã€è¨å®šãªã©ï¼‰
Javaã§ã¯ã€ã“ã®ã€Œè²¬ä»»ã®åˆ‡ã‚Šåˆ†ã‘ã€ãŒ static ã‚’è¨è¨ˆã«æ´»ã‹ã™ãƒã‚¤ãƒ³ãƒˆã§ã™ã€‚
ã¾ã¨ã‚
static変数ã¯ã€Œå…¨ä½“ã§å…±æœ‰ã•ã‚Œã‚‹æƒ…å ±ã€ã®ä¿æŒã«é©ã—ã¦ã„ã‚‹- インスタンスã”ã¨ã®æƒ…å ±ï¼ˆtitle, pages)ã¨ã¯è¨è¨ˆä¸Šã®è²¬å‹™ãŒç•°ãªã‚‹
totalPagesã®ã‚ˆã†ãªçµ±è¨ˆçš„ãªæƒ…å ±ã¯ã€ã‚¯ãƒ©ã‚¹å˜ä½ã§ç®¡ç†ã™ã‚‹ã¹ã
104 ステップアップå•題 「static修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€Œstatic修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// ã‚ã¨ã§èª¿ã¹ç›´ã™ãらã„ãªã‚‰ã€ä»Šã€èªã‚‚ã†ãœã€‚
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™



コメント