《21天学通Java(第7版)》——VC程序员的学习笔记1

第一章 Java基础

1.2 面向对象编程

       1、Java和VC一样都是面向对象(OOP)的编程语言。

       2、Java独立于平台。即Java开发的程序无须修改便能运行在不同的计算环境中。Java 程序被编译成一种名为字节码的格式,而字节码可被任何带Java 虚拟机(JVM)的计算机或设备运行。您可以在Windows 10 机器上创建Java 程序,然后在Linux Web 服务器、使用OS 10.10 的Apple Mac 和三星Android 手机上运行。只要平台安装了JVM,就能运行字节码。

       3、Java 主要在以下方面比C++更容易。

           Java 自动负责内存的分配和释放,将程序员从这种容易出错而复杂的工作中解放出来。

          Java 没有指针。对经验丰富的程序员来说,指针是一种功能强大的特性,但也容易误用以及带来严重的安全隐患。(从后文可以看出,虽然Java没有显式的指针,但是存在有隐式的指针,比如数组

         Java 只具备面向对象编程中的单继承。

       4、Java 之所以安全的两个关键因素是没有指针且能自动管理内存。

1.3 对象和类

       1、含义和作用同VC。

       2、类是用于创建对象的模板。使用同一个类创建的每个对象都具有相似的特性。

       3、类是抽象概念模型。要在程序中有能够实际操纵的具体东西,必须有对象。使用类创建对象的过程叫做实例化(instantiation),这就是对象也被称作实例的原因所在。

1.4 属性和行为

       1、含义和作用同VC。

       2、属性(attribute)是对象区别于其他对象的数据,可用于确定属于该类的对象的外观、状态和其他性质。

       3、实例变量(instance variable)定义了特定对象的属性。实例变量也被称为对象变量(object variable)或成员变量(member variable)。(CVC中就是类的成员变量

       4、类变量(class variable)定义了类的属性。该变量用于类本身及其所有实例,因此不管使用该类创建了多少个对象,都只存储该变量的一个值。(通常情况下,该类的常量被定义为类变量,不轻易修改。类变量一旦修改,将影响所有实例。例如一些限制值,定义为类变量比定义为实例变量更合适,比如汽车运行的最高时速。

       5、行为(behavior)指的是对象能够对自身和其他对象执行的操作。行为可以用来修改对象的属性、接收来自其他对象的信息以及向其他对象发送消息让它们执行任务。行为是使用方法实现的。

       6、方法(method)是类中一组用来完成特定任务的相关语句。它们用来针对对象本身或其他对象执行特定任务,相当于其他编程语言中的函数和子程序。设计良好的方法只执行一项任务。(VC中也叫方法,但更习惯称为函数、成员函数。

       7、方法也分为实例方法和类方法。实例方法(instance method)通常被简称为方法,用于处理类的一个对象。如果一个方法对各个对象进行修改,它必须是实例方法。类方法(class method)适用于类本身。

       8、Java中只要保存了文件即进行了编译。(VC需要手动编译)。

       9、定义类的关键字为class,同VC。

       10、类的对象可以作为另一个类的实例变量,同VC。

       11、方法的定义方式同VC,包含返回值、方法名、及参数列表。

       12、使用类的方式有两种:

              1) 创建一个独立的Java 程序,并在其中创建这个类的对象;同VC。

              2) 在类中添加一个特殊的类方法—main( ),使其能作为一个应用程序运行;然后在方法main( )中创建类对象。

       13、本章节中讲到了运行功能。点击菜单栏中的运行按钮,将默认运行主类,如果想要运行非主类,应选择“运行”-》“运行文件”,则当前活动文件中的类将被运行。

       14、所有mian()方法的格式都为:       public static void main(String[] arguments)

       15、关键字static表明该方法或变量为类方法或类变量,任何类的对象执行了该方法或修改了该变量,会影响到这个类的所有对象(类似VC中的全局变量和全局函数)。

1.5 组织类和类行为

       Java 面向对象编程还涉及另外三个概念:继承、接口和包,这些都是用于组织类和类行为的机制。(“继承”的概念类似VC;“包”的概念类似于VC中的“库”

       1、继承其他类的类叫子类,被继承的类叫超类。(VC中叫父类,可能只是翻译的问题,在其他java资料中有的也称呼为父类

       2、一个类只能有一个超类,但可以有任意数目的子类。(VC中一个类允许有多个父类,称为多继承,java中只有单继承(single inheritance),简化了继承机制

       3、Java 类层次结构的顶端是类Object,所有的类都是从这个超类继承而来的。Object 是层次结构中最通用的类,定义了Java 类库中的所有类的行为。

       4、层次结构中越往下,类的用途越具体。层次结构的顶部定义的是抽象概念,越往下,这些概念越具体。

       5、子类化指的是通过继承已有的类来创建一个新类,子类只需指出其属性和行为不同于超类的地方。

       6、如果一个类定义了全新的行为,且不是其他类的子类,则可以直接继承Object 类。没有指定超类时,Java 将认为它直接继承Object。

       7、如果在实践总创建了大量的类,则应该让这些类从现有类层次结构继承,并构建自身的层次结构。

    1. 可将多个类共有的功能放在一个超类中,这样就可以在更底层的类中重复使用这些功能;
    2. 对超类的修改将自动反映到其所有的子类、子类的子类等中,而无须修改或重新编译更底层的类,它们将通过继承获得新的信息。

       (一种共有属性和行为的提取,提高代码的使用率,从而减少代码的重复性,既能精简代码,又能提高编程效率,同时可减少错误的发生

       8、子类定义一个与超类方法相同(必须名称、返回值和参数都相同)的方法,即为覆盖(override)。层次越低的方法优先级越高。因为当对象调用一个方法时,java是从层次结构的底部开始查找,一旦找到就不再继续。

       9、接口是一组方法,它指出类除了从超类继承的行为外,还有其他行为。接口中的方法并没有定义行为,这项任务将由实现该接口的类去完成。(第6章)

       10、在Java 中,用于将相关的类和接口编组,使得更容易在其他类中引用它们;包还避免了类之间潜在的命名冲突。(包的概念类似于VC中的库。

       11、引用Java 类时,可使用简短的名称,如Object,也可使用完整的名称,如java.lang.Object。

默认情况下,只需通过简短的名称就可引用java.lang 包中的类。java.lang 包提供了基本的语言功能,如字符串处理和数学运算。要使用其他包中的类,必须使用完整的包名或使用import 语句将包导入到源代码文件中。

       12、要指定类所属的包,可使用package 语句。这条语句必须位于类的最前面。(就如同C中的#include

       13、关键字import 不会将指定类或包的字节码加入到当前创建的类中,而只是使得在一个类中引用另一个类更容易。通过导入,在Java 语句中引用类时,可使用简短的名称,这是导入的唯一目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章