1、Comment 昌昌昌1: 通过类名称 “.”来取成员1、 JDK开发环境(包含 JER)2、 JRE执行环境(包含 JVM)3、 JVM虚拟机将.java 编译成.class 位码的工具4、 要在包间可以无目的地使用的类或方法必须声明为 public5、 cc.openhome.main与 cc.openhome.util,main 要使用 Console要写全 cc.openhome.util.Console6、 import cc.openhome.*会包含 cc.openhome.util与 cc.openhome.util.Console7、 跨包使用类需声明为 Public,类如果
2、不如不声明为 Public那么方法声明为 Public也没用。8、 printf() 56page9、 方法名称首字母是小写。10、 Interfac与 extends区别 extends继承会有一是种关系,interface 表是拥有这种行为11、 private取值方法 get开头之后接上 首字母大写。12、 构造函数与类同名。13、 基本类型=为判断是否相等 78 page,类类型=是参考 83page14、 INT 数组 for(int x = 0; x 0) this.balance += money;if(money = 1000) Comment 昌昌昌7: 封装储值流程(黑箱操
3、作)Comment 昌昌昌8: 方法名称首字母是小写Comment 昌昌昌9: 返回值 int型Comment 昌昌昌10: 调用上面的CashCard类this.bonus+;else System.out.println(“儲值是負的?你是來亂的嗎? “);void charge(int money) / 扣款時呼叫的方法if(money 0) if(money 0) this.bonus -= bonus;return this.bonus;public class CardApp public static void main(String args) CashCard cards =
4、 new CashCard(“A001“, 500, 0),new CashCard(“A002“, 300, 0),new CashCard(“A003“, 1000, 1);Scanner console = new Scanner(System.in);for(CashCard card : cards) System.out.printf(“為 (%s, %d, %d) 儲值:“, card.number, card.balance, card.bonus);card.store(console.nextInt();System.out.printf(“明細 (%s, %d, %d)%
5、n“,Comment 昌昌昌11: 设置为私有成员,用户不能直接修改值Comment 昌昌昌12: 通过此方法才能修改值card.number, card.balance, card.bonus);-class CashCard private String number;private int balance;private int bonus;CashCard(String number, int balance, int bonus) this.number = number;this.balance = balance;this.bonus = bonus;void store(int
6、 money) if(money 0) this.balance += money;if(money = 1000) this.bonus+;else System.out.println(“儲值是負的?你是來亂的嗎? “);void charge(int money) if(money 0) if(money 0) this.bonus -= bonus;return this.bonus;int getBalance() return balance;int getBonus() return bonus;String getNumber() return number;public cl
7、ass CardApp public static void main(String args) Scanner console = new Scanner(System.in);CashCard card1 = new CashCard(“A001“, 500, 0);card1.store(console.nextInt();CashCard card2 = new CashCard(“A002“, 300, 0);card2.store(console.nextInt();CashCard card3 = new CashCard(“A003“, 1000, 1);card3.store
8、(console.nextInt();System.out.printf(“明細 (%s, %d, %d)%n“,card1.getNumber(), card1.getBalance(), card1.getBonus();System.out.printf(“明細 (%s, %d, %d)%n“,card2.getNumber(), card2.getBalance(), card2.getBonus();System.out.printf(“明細 (%s, %d, %d)%n“,card3.getNumber(), card3.getBalance(), card3.getBonus()
9、;Comment 昌昌昌20: 不定长度自变量Comment 昌昌昌21: 内部类Comment 昌昌昌22: 不能存取非 static成员Comment 昌昌昌23: SwordsMan是一种 RoleComment 昌昌昌24: Role扮演SwordsManComment 昌昌昌25: 声明为 Role类型Comment 昌昌昌26: 多态,一种方面操作多种对象-public static int sum(int. numbers)class Some static int x;int y;static class Other void doOther() out.println(x);
10、out.println(y);-多态-Role role1 = new SwordsMan();SwordsMan swordsman = (SwordsMan) role1;-声明类型-public class RPG public static void main(String args) SwordsMan swordsMan = new SwordsMan();swordsMan.setName(“Justin“);swordsMan.setLevel(1);swordsMan.setBlood(200);Magician magician = new Magician();magic
11、ian.setName(“Monica“);magician.setLevel(1);magician.setBlood(100);showBlood(swordsMan);showBlood(magician);static void showBlood(Role role) System.out.printf(“%s 血量 %d%n“,role.getName(), role.getBlood();Comment 昌昌昌27: 先建立一个空方法,在子类定义行为-提升方法为父类-public class Role private String name;private int level;p
12、rivate int blood;public void fight() / 子類別要重新定義fight()的實際行為public int getBlood() return blood;public void setBlood(int blood) this.blood = blood;public int getLevel() return level;public void setLevel(int level) this.level = level;public String getName() return name;public void setName(String name)
13、this.name = name;-重新定义-public class Role private String name;private int level;private int blood;public void fight() / 子類別要重新定義fight()的實際行為Comment 昌昌昌28: 与父类方法不同叫重载Comment 昌昌昌29: 检查名称防止出错Comment 昌昌昌30: 重新定义Override方法行为Comment 昌昌昌31: 定义为抽象类Comment 昌昌昌32: 定义为抽象方法有 abstract 的方法一定要有操作否则不能实例化Comment 昌昌昌3
14、3: 子类可以直接存取父类信息不同包的类需继承Comment 昌昌昌34: 不满意父类定义,在子类重新定义调用父类方法Comment 昌昌昌35: swordsman 是一种 Rolepublic class Magician extends Role Overridepublic void fight() System.out.println(“魔法攻擊“ );public void cure() System.out.println(“魔法治療“ );public class SwordsMan extends Role Overridepublic void fight() System
15、.out.println(“揮劍攻擊“ );public abstract class Role private String name;private int level;private int blood;public abstract void fight();public abstract class Role protected String name;protected int level;protected int blood;public abstract void fight();public class SwordsMan extends Role Overridepublic void fight() System.out.println(“揮劍攻擊“ );Overridepublic String toString() return “劍士 “ + super.toString();showBlood(swordsMan);showBlood(magician);