java深入学习笔记.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java深入学习笔记 面向对象编程的三原则(封装,继承,多态) 怎样理解? Java封装的基本单元是类。 为什么对整数或字符不使用new关键字?答案是java的基本类型并不是作为对象实现的。类是一个逻辑结构,而对象则有其物理真实性(在内存中占有空间)。 构造函数调用是在对象被创建后,new运算符完成之前,将调用构造函数。 一个构造函数隐含的返回类型是类类型本身。 This.关键字 一般是在方法内部使用this关键字来引用当前对象。This调用的是方法对象的一个引用。 当局部变量和一个实例变量同名时,局部变量隐藏了实例变量。 使用this可以解决在实例变量和局部变量之间可能出现名字空间冲突的问题。 垃圾收集机制 由于对象是使用new运算符动态第分配内存,所以还要销毁这些对象、释放其存储空间以备从新分配。 工作原理:当不存在对一个对象的引用时,就假定不在需要该对象了,垃圾(garbage)收集仅仅在执行时偶尔出现,finalize()仅在垃圾收集之前被调用。 堆栈类 在java中类是一种机制,正是通过它实现了封装,创建一个类时,就是创建一个新的数据类型,这个数据类型定义了被操作的数据的本质和操作数据的例程, 堆栈类有一点要注意,保存堆栈的数组可以被堆栈类外面的代码改变,这使得堆栈很容易被误用或受到损坏。 方法重载(java实现多态的方式之一) 重载的价值是:它允许相关方法通过使用一个公用的名称来访问。 对象参数 把对象作为参数进行传递是常用的用法,对象参数常用在构造函数中, 参数传递: 按值调用,按引用调用 Static关键字 通常,类成员必须通过它的类的对象访问。然而,可以创建这样一个成员,他能够被它自己使用,而无需引用一个特殊的实例。当声明一个对象为static时,可以在类的任何对象创建之前访问它,而无需引用任何对象,被声明为static的变量本质上是全局变量,当声明该类的对象时,不会产生static变量的副本,类的所有实例共享同一个static变量。 如果要通过计算来初始化static变量,可以声明一个static块,这个块仅在该类被第一次加载时执行一次。 内部类 and 嵌套类(nested classed) 嵌套类的作用域由包含它的类的作用域限定因此,如果类B在类A内定义,则类B为A所知,但不被A的外面所知。嵌套类可以访问嵌套它的类的成员,包括私有成员,但包围类不能访问嵌套类的成员。 有两种类型的嵌套类:静态的和非静态的,静态嵌套类是一个具有static修饰符修饰的类,因为是静态的,所以他必须通过对象来访问其包围类的成员,也就是说,他不能直接引用包围类的成员,因为有了这个限制,所以很少使用静态嵌套类。 最重要的嵌套类是内部类(inner),内部类是一个非静态的嵌套类。它可以访问它的外部类的所有变量和方法,并且可以象外部类的其他非静态成员那样以同样的方式直接引用他们,因此,一个内部类是完全在其包围类的作用域内的。 但是内部类的成员仅在内部类的作用与内是可知的,不可以被外部类使用。 String类 理解字符串第一件事是:创建的每一个字符串实际上都是一个String类型的对象,即使是一个字符串常量,也是一个String对象。 理解字符串第二件事是:String类型的对象是不可改变的。一旦创建一个String对象,就不能改变其内容。 变长参数(varargs) 一个变长参数由三个句点(。。。)来指定。 一个方法既可以带正常参数,也可以带变长参数,但是变长参数必须是该方法最后声明的参数,例如: Int doIt(int a, int b, double c, int ... vals); 而且只能有一个varargs参数。可变参数与模糊性。 超类变量可以引用子类对象(父类的引用指向子类的对象): 决定了可以访问什么成员的是引用变量的类型,而不是它引用的对象类型。也就是说,将一个子类对象的引用赋给一个超类引用变量时,只可以访问由超类所定义的那部分对象。 Super的两种常见的形式:第一种调用超类的构造方法。第二种访问被子类成员所隐藏的超类成员。 在多级层次结构中,super0方法总是引用最近超类中的构造方法,如果一个超类构造方法要求参数,那么所有的子类必须“向上?“传递耐那些参数不管之类是否需要参数。 动态方法调度 方法重写构成了Java最强大的一个概念基础:动态方法调度(dynameic method dispatch) 动态方法调用是一种机制,借助与这种机制,对一个已重写方法的调用将在运行时,而不是在编译时解析。 前面讲过,超类引用变量可以引用子类对象,java使用这个事实来解决在运行时对 重写方法的调用。其运行原理是: 当一个超类引用调用一个重写方法时,Java根据在调用时被引用对象的类型来决定执行哪个版本的方法,因此这个决定

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档