类成员-变量和方法 JAVA 对象具有状态和行为 成员变量定义 [访问权限修饰符]类型变量名 [访问权限修饰符]类型变量名[=初值]: [访问权限修饰符]类型变量名[=初值][,变量名[= 初值].] ■成员方法定义 [访问权限修饰符]方法返回类型方法名O[十 crows异常名]{ 方法体; 类型:基本类型,复合类型(数組、类和接口
27 ◼ 对象具有状态和行为 ◼ 成员变量定义 [访问权限修饰符] 类型 变量名; [访问权限修饰符] 类型 变量名 [=初值]; [访问权限修饰符] 类型 变量名 [=初值] [,变量名 [= 初值]…]; ◼ 成员方法定义 [访问权限修饰符] 方法返回类型 方法名 () [throws 异常名] { 方法体; } ◼ 类型:基本类型,复合类型(数组、类和接口) 类成员-变量和方法
类成员变量的访问 JAVA 访问控制修饰符 公共访问控制符-pub|ic ■被所有类访问 ■默认访闷控制符 ■被同一包中其他类访问 私有访问控制符- private ■被该类自身访问 ■保护访问控制符- protected 该类自身、同一个包中的其他类、其他包中的子类 访问 ■私有保护访问控制符- private protecte 该类自身、所有子类访问 28
28 ◼ 访问控制修饰符 ◼ 公共访问控制符-public ◼ 被所有类访问 ◼ 默认访问控制符 ◼ 被同一包中其他类访问 ◼ 私有访问控制符- private ◼ 被该类自身访问 ◼ 保护访问控制符- protected ◼ 该类自身、同一个包中的其他类、其他包中的子类 访问 ◼ 私有保护访问控制符-private protected ◼ 该类自身、所有子类访问 类成员变量的访问
类成员变量的访问 JAVA 访问控制修符 ■静态变量 static ■属于类的变量 ■最终变量 final 值在程序的执行过程中不会改变 ■易失变量 volatile 可能同时被多个线程所控制和修改
29 ◼ 非访问控制修符 ◼ 静态变量static ◼ 属于类的变量 ◼ 最终变量final ◼ 值在程序的执行过程中不会改变 ◼ 易失变量volatile ◼ 可能同时被多个线程所控制和修改 类成员变量的访问
类成员的访问 AVA package abCr pub|ic(公共变量/公共方 class a 容许全权访同,无促何限, public int X; public void print(){… class a t public int X; public void printout.y package xyz import abc.A class Bi class B i void testo void teston A a= new Ao A a= new AO; aX=100 aX=100 a printo a printo; 直接访间公有变量X} 和公共方法 print
30 ◼ public (公共变量/公共方法) ◼ 容许全权访问,无任何限制(先构造对象,再访问) 类成员的访问 class A { public int x; public void print() { … } } class B { void test() { A a = new A(); a.x = 100; a.print(); } } package abc; class A { public int x; public void print() { … } } package xyz; import abc.A; class B { void test() { A a = new A(); a.x = 100; a.print(); } } 直接访问公有变量x 和公共方法print()
类成员的访问 JAVA private(私有变量/私有方法) 仅能在其所定义的类中被访问(先构造对象,再访问) class a i D: >javac Ajava private int Xi x has private access in A private void print(0){… aX=100 八 class B i printo has private access in a void testo t a printo A a= new A( aX=100 2 errors a print( 31
31 ◼ private (私有变量/私有方法) ◼ 仅能在其所定义的类中被访问(先构造对象,再访问) D:\>javac A.java x has private access in A a.x = 100; ^ print() has private access in A a.print(); ^ 2 errors 类成员的访问 class A { private int x; private void print() { … } } class B { void test() { A a = new A(); a.x = 100; a.print(); } }