- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二十一天让你学通java
Java基础需要注意的是类的层次结构问题。
? ? “继承”实现了代码的重(chong)用,我们可以根据需要对其进行扩展(final关键字修饰的类除外)。超类是对其所有子类公有属性和行为的抽象。类的对象可以实现同类事物的多样性,而子类是对其超类的扩展。同一超类的不同分支间的共同属性和行为可以通过接口来进行限定。
? ? 覆盖原理:调用方法的时候,Java解释器是从子类开始往上查找,如果子类中没有找到这个方法,就去查看其上层超类,如果其上层超类中没有这个方法,就去更上层的超类中查找。所以在子类中定义一组与超类同名(名称,返回值,参数)的方法之后就会覆盖上层超类的同名方法。
? ? 简单的总结:用类来模拟真实的世界的事物(甚至是一些抽象的概念),然后通过传参来实现事物间的交互(你可以在类中定义一些用来接收参数的方法)。所有类和接口的管理(如分类和访问控制)通过包来进行管理。
? ? 顺便说下,当使用继承之后,父类对象和子类对象是两个完全独立的对象,它们在虚拟机上是平等的,没有依赖关系(比如,可以在父类中定义一个私有方法来操作子类。这在逻辑上似乎说不通,因为,儿子还没生出来怎么能去操作它呢?情况恰恰就是这样,因为我考虑的是对象间的关系而不是类之间的关系,在对象创建完成之后它们就是相互独立的事物,之间可以进行交互。父亲可以具有一些儿子所没有的能力:如,儿子做错了事,父亲可以给与一定的教育。不过现实中的这种生育关系和面向对象编程(OOP)的继承是有区别的,现实中的父亲和儿子各具特色,是同一层面上的,它们的超类是“人”。在所有类默认的顶层超类“Object”的源代码中就有这样的代码来处理子类。
? ? 知识扩展:java.lang包是JVM(Java虚拟机)系统自动引入的包(里面的类可以直接使用而无需用import关键字导入),这个包里有3个特殊的类:Object ,Class ,ClassLoader 。其中Object 是所有类的父类。ClassLoader用来将类加载到JVM中。而Class的对象用来描述对象的类型,属性和行为,它在创建对象的时候由JVM通过ClassLoader的defineClass方法自动构造并与此对象绑定,这样就使得每个对象知道自己是什么和能做什么,并且通过反射机制(此技术大家可以另作讨论)来显示出这些描述并进行一些应用。
??例如有个特殊用法:类名·class(如String.class ,Integer.class)用来表示此类的类型。这个特殊用法,我们可以用来比较某一对象是不是我们需要的某类对象,从一系列对象中筛选出这类对象。
以下是一个例子? ?
public boolean compare (Class c,Object o){
? ? boolean bool=false;
? ? //c获取它的名称,o获得其Class对象然后获得它的名称,如果两个名称相同,将bool设置为true
? ? if(c.getName().equals(o.getClass().getName())) bool=true;
? ? return bool;
}
? ? 而用上述方法传参的时候可以这样compare(Integer.class,冲啊) 在此,将返回false,前者为Integer类,后者为字符串
? ? 也许有人会问:用关键字instanceof 来判断某对象是不是属于某类不就行了,比如,if(o instanceof String),但是,如要有必要通过传参来实现这种比较呢,所以这种方法有它的灵活性!
? ? 二进制名称:在帮助文档中的ClassLoader类中会看到这个名词(大概就是通常的符合语法规定的“字符串”)。网上没找到这个名词的解释,不过在维基百科上有:二进制文件(Binary files)一般指包含ASCII及扩展ASCII字符中编写的数据或程序指令的文件。所以我想,这种叫法跟ASCII编码有关系。
第2章 Java编程基础
? ? 第二章主要内容是基础语法,具体内容大家可以去参考此书目录,在此我不一一列举。仅对一些新手可能遇到的问题和精华内容作一些说明。
一、Java中以分号(;)标志语句结束,如果在一些莫名其妙的报错可能会是这个原因引起,由于现在IDE(集成开发环境)的语法纠错都比较好,这种错误不容易犯。不过会有这种情况,由于分号缺少导致的其它语句报错可能会让新手百思不得其解,所以应当注意。
? ? 除了以分号结束语句以外,“块”(用一对花括号{}表示)语句也可以成为单独的语句,并且具有局部变量范围的限制(即,块中的变量仅属于此块),也就是说,你在块中定义的变量是不能在外面使用的,所以要在外面使用某个变量,需要在块外表示。块语句可以出现在任何可以使用单条语句的地方。
以下是一个特
原创力文档


文档评论(0)