第4章 面向对象基础(上).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * 在内部类对象中保存了一个对外部类对象的引用,当在内部类的成员方法中访问某一变量时,如在该方法和内部类中没有定义过该变量,调用就会传递给内部类中保存的那个外部类对象的引用,通过那个外部类对象的引用去调用这个变量,在内部类中调用外部类的方法也是同样的道理。 一个内部类可以访问它的外部类的成员,但反过来就不成立。 小结一 public class Outer{ int outer_i = 100; void test(){ Inner in = new Inner(); in.display(); } class Inner{ int y=10; void display(){ System.out.println(display: outer_i = + outer_i); } } void showy(){ System.out.println(y); } } 运行结果 如果用static修饰一个内部类,这个类就相当于是一个外部定义的类:所以static修饰的内部类中可以声明static成员,但非static的内部类中的成员是不可以用static修饰的。 用static修饰的内部类是不能使用外部类封装的非static 成员的。 小结二 class Outer { int outer_i = 100; void test() { Inner in = new Inner(); in.display(); } static class Inner { void display() { System.out.println(display: outer_i = + outer_i); } } } 把上面的程序中的Inner内部类声明为static,看看会出现什么错误? 运行结果 3.内部类如何被外部类引用? (1) 内部类可以通过创建对象从外部类之外被调用,只要将内部类声明为public即可。 (2)下面的程序中,内部类被声明为public,在外部就可以创建其外部类Outer的实例对象,再通过Outer类的实例对象创建Inner类的对象,使用Inner类的对象来访问Inner中的方法。 class Outer { private int size = 10; class Inner { public void doStuff() { System.out.println(++size); } } } class TestInner { public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner in=outer.new Inner(); in.doStuff(); } } 4.本地类 本地类(Local class)是定义在代码块中的类.它们只在定义它们的代码块中是可见的.本地类与本地变量类似—它们被定义在使用它们的地方.本地类有两个重要特性: (1)它们仅在定义了它们的代码块中是可见的. (2)它可以使用定义它们的代码块中的final常量. 例: public class TopClass{ public void methodA(){ class LocalClass { …… } …… } …… } 注: 1. LocalClass类只能在methodA中可见; 2. LocalClass可以访问TopClass类的任何final常量; 3. 本地类中不能包含任何

文档评论(0)

803322fw + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档