Methods(方法) 方法是语句的结合,方法中的语句可以访问 和修改类或类的对象中域,也可以使用域存 放的数据进行复杂的计算 方法体现了OOP中严格区分“做什么”和 “怎么做”的思想 方法(特别是 public方法)又被看作是类的设 计者和类的使用者之间的契约( contract
Methods (方法) • 方法是语句的结合,方法中的语句可以访问 和修改类或类的对象中域,也可以使用域存 放的数据进行复杂的计算 • 方法体现了OOP中严格区分“做什么”和 “怎么做”的思想 • 方法(特别是public方法)又被看作是类的设 计者和类的使用者之间的契约(contract)
Declaring Methods(声明方法 class BodyPrinti public static void main(Stringl args)←方法头 Body sun= new Body(“Sun”); Body earth= new Body(“ Earth”); earth orbits=sun System. out. printIn(“Body”+ earth. name+ “ orbits”+ earth. orbits. name) Java Body print 方法体 Body earth orbits Sun
Declaring Methods (声明方法) • 方法位于类体中,方法声明由方法头和方法 体两部分构成,方法头中要声明方法的返回 类型和方法可能跑出的异常列表 <修饰符> <返回类型> <方法名>(<参数列表>) <异常列表>{ /*…方法体…*/ } • 如果方法头中声明的返回类型不是void,则方 法体结束时必须通过return语言返回执行结果 class BodyPrint{ public static void main(String[] args) { Body sun=new Body(“Sun”); Body earth=new Body(“Earth”); earth.orbits=sun; System.out.println(“Body ”+earth.name+ “orbits ”+earth.orbits.name) } } java BodyPrint Body Earth orbits Sun 方法头 方法体
Method modifiers(方法的修饰符) 方法可使用一下修饰符 访问控制修饰符一与域相同 bstra一声明为 abstract的方法没有方法体,一般定义在抽象 类中,被子类实现 statie一声明为 static的方法是类的方法,否则为对象的方法 n-声明为fnal的方法不能被子类覆盖 overridden synchronized一当方法可能被多个线程、为了保持对象状态的 致性,可以通过 synchronized来控制线程对方法的访问 native一声明为 native的方法,又称为本地方法,这种方法通 常由其它语言实现 stricti一与类相同
Method Modifiers (方法的修饰符) • 方法可使用一下修饰符: 访问控制修饰符— 与域相同 abstract — 声明为abstract的方法没有方法体,一般定义在抽象 类中,被子类实现 static — 声明为static的方法是类的方法,否则为对象的方法 final — 声明为final的方法不能被子类覆盖(overridden) synchronized — 当方法可能被多个线程,为了保持对象状态的 一致性,可以通过synchronized来控制线程对方法的访问 native — 声明为native的方法,又称为本地方法,这种方法通 常由其它语言实现 strictfp — 与类相同
Access control(法的问挥制 通过访问控制修饰符( access modifiers可以限制方 法在类或对象外部的可见性 pube一共有的,方法在任何地方都可以通过 类或类的对象调用 protected—受保护的,方法仅在类体中、子类 类体中或同包的其它类类体中可调用 rite一私有的,方法仅在类体中可调用 package—默认的,没有任何访问修饰符修饰的 方法,仅在类体中、同包的其它类类体中可调用
Access Control (方法的访问控制) • 通过访问控制修饰符 (access modifiers)可以限制方 法在类或对象外部的可见性 public — 共有的,方法在任何地方都可以通过 类或类的对象调用 protected — 受保护的,方法仅在类体中、子类 类体中或同包的其它类类体中可调用 private — 私有的,方法仅在类体中可调用 package — 默认的,没有任何访问修饰符修饰的 方法,仅在类体中、同包的其它类类体中可调用
Invoking Methods(调用方法 class Body e00 public String toString return“Body”+name; public static void main(Stringl args t Body earth= new Body(“ Earth”); System. out. printIn(earth); java body Body earth
Invoking Methods (调用方法) • 对于static方法,可以通过“类名.方法”调 用 System.gc() • 对于对象的方法,在对象被创建后,可以通 过“对象的引用.方法”调用 System.out.println(…); class Body{ …… public String toString(){ return “Body ”+name; } public static void main(String[] args){ Body earth=new Body(“Earth”); System.out.println(earth); } } java Body Body Earth