第4讲面向对象特征1内容摘要:

修符  静态变量 static  属于类的变量  最终变量 final  值在程序的执行过程中不会改变  易失变量 volatile  可能同时被多个线程所控制和修改 非访问控制修符 28  public (公共变量 /公共方法 )  容许全权访问,无任何限制 (先构造对象,再访问 ) public (公共变量 /公共方法 ) class A { public int x。 public void print() { … } } class B { void test() { A a = new A()。 = 100。 ()。 } } package abc。 class A { public int x。 public void print() { … } } package xyz。 import。 class B { void test() { A a = new A()。 = 100。 ()。 } } 直接访问公有变量 x 和公共方法 print() 29  private (私有变量 /私有方法 )  仅能在其所定义的类中被访问 (先构造对象,再访问 ) D:\javac x has private access in A = 100。 ^ print() has private access in A ()。 ^ 2 errors private (私有变量 /私有方法 ) class A { private int x。 private void print() { … } } class B { void test() { A a = new A()。 = 100。 ()。 } } 30  protected (保护变量 /保护方法 )  容许类本身、子类 (有一定限制 )以及同一个包中所有类访问 (先构造对象,再访问 ) protected (保护变量 /保护方法 ) class A { protected int x。 protected void print() { … } } class B { void test() { A a = new A()。 = 100。 ()。 } } package abc。 class A { protected int x。 protected void print() { … } } package xyz。 import。 class B extends A { void test(A a, B b) { = 100。 ()。 = 100。 ()。 } } //illegal //illegal //legal //legal 31  无修饰 (友好变量 /友好方法 )  容许类本身以及同一个包中所有类访问 无修饰 (友好变量 /友好方法 ) class A { int x。 void print() { … } } class B { void test() { A a = new A()。 = 100。 ()。 } } package abc。 class A { int x。 void print() { … } } package abc。 class B { void test() { A a = new A()。 = 100。 ()。 } } 32  小结 名称 访问权修饰符 类本身 子类 包 所有类 公共 public     默认   保护 protected   *  私有 private  * 指子类与父类不在同一个包中的情况 小结 33  static (静态变量 /静态方法 )  类的变量 /方法,独立于类的对象,可以直接根据类名调用 class S { static int A = 12, B = 34。 static void print() { … } } class Test { public static void main(String args[]) { (“A=“ + + “ B=“ + )。 ()。 } } 类成员变量 34  static (静态变量 /静态方法 ) class Test { public void print(int x) { (x)。 } public static void main(String args[]) { int x = 3。 print(x)。 } } D:\javac :9: nonstatic method print(int) cannot be referenced from a static context print(x)。 ^ 1 err r l t public void print(int x) { (x)。 } public static void main(String args[]) { int x = 3。 Test t = new Test()。 (x)。 } l t li stat c vo d print(int x) { intln(x)。 li t ti i mai tri r int x = 3。 print(x)。 } static方法中仅仅可以调用其他 static方法 static (静态变量 /静态方法 ) 35  final 变量 /方法  final变量 : 定义一个常数,即变量值不能改变 final double AVOGADRO =。  final类 : 不能有子类  final方法 : 方法不能被重写 (overriding) class ChessAlgorithm { . . . final void nextMove(ChessPiece pieceMoved, BoardLocation n。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。