第一章 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 语句中引用类时,可使用简短的名称,这是导入的唯一目的。

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

  1. 21天学通java第7版pdf_21天学通Java.第7版.pdf

    <21天学通Java(第7版)>是初学者学习Java编程语言的畅销经典教程,循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习:同时全面涵盖了Java 8这一新标准以及与And ...

  2. 《21天学通Java(第7版)》—— 第2章 Java编程基础 2.1 语句和表达式

    本节书摘来异步社区<21天学通Java(第7版)>一书中的第2章,第2.1节,作者: [美]Rogers Cadenhead(罗格斯 卡登海德),更多章节内容可以访问云栖社区"异 ...

  3. 《21天学通Java(第6版)》—— 1.4 属性和行为

    本节书摘来异步社区<21天学通Java(第6版)>一书中的第1章,第1.4节,作者:[美]Rogers Cadenhead,更多章节内容可以访问云栖社区"异步社区"公众 ...

  4. 21天学通Java学习笔记-Day01

    21天学通java 中文第6版 下载地址:点击打开链接 Day01: 命令行查看和设置classpath: 查看:echo %classpath% 设置:set classpath = %classp ...

  5. 21day学通python epub_21天就让你掌握Python语言,《21天学通Python》PDF版送给你去学...

    Python的学习书籍小编看过很多,但是这本<21天学通Python>真的是堪称极品! 本书的作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版 ...

  6. ole2高级编程技术 pdf_21天快速掌握Python语言,《21天学通Python》PDF版送给你去学...

    Python的学习书籍小编看过很多,但是这本<21天学通Python>真的是堪称极品! 本书的作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版 ...

  7. 21天学通Python,从入门到上手,学习方式+学习资料+学习视频汇总,零基础转行自学必备

    前言 python的学习资料小编看过很多,但是这个21天学通python真的是堪称极品!作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,颇受广大读者认可.长期积累 ...

  8. 21天学通Java学习笔记-Day12(MYsql-JDBC)

    JDBC MYQL 基础: 用命令行进入MYSQL:shell > mysql -h host(主机) -u user(用户名) -p 回车,等待输入密码 退出MYSQL:mysql >  ...

  9. 21天学通java 3_《21天学通Java》PDF 下载

    第一篇  基 础 篇 第1章  Java简介 1.1  Java的平台简介 1.2  安装工具包 1.3  程序开发过程 1.4  编码规范 1.5  HelloWorld:第一个Java程序 1.6 ...

  10. 21天学通Java学习笔记-Day04

    Day04: 静态数组是一组对象,每个元素都是一个对象,所以用 new 创建新的数组实例. class test{public static void main(String[]args){a[] a ...

最新文章

  1. Android 微信支付详解与Demo
  2. ios framework 查看symbol_iOS开发高级分享 - App间账号共享与SDK封装
  3. codevs 1085 数字游戏 dp或者暴搜
  4. mysql 一键脚本_mysql一键安装脚本
  5. 关于C#中将数字转换为指定格式
  6. idea非活动变更列表中的文件被修改,IntellJ IDEA中的更改列表是什么?一个变化列表比较什么?寻求准确的解释...
  7. 联众打码平台接口调用(初版)
  8. 转载 刘鹏老师 计算广告学 人大笔记
  9. 平方符号在python中的作用_python平方符号
  10. 爱在心中【tarjan + 缩点】
  11. ​VB语言凉凉了!微软宣布放弃不再​更新,GitHub正式收购 npm ,力挺整个JavaScript生态!...
  12. 直方图python_Python数据可视化的例子——直方图和核密度曲线
  13. 被马斯克热炒的人形机器人Optimus“擎天柱“,中国厂商或后来居上
  14. 技巧篇:常用的R代码汇总
  15. 运用设计模式实现Sql语句动态转换
  16. 我们将与操作系统工作谈一场无私的爱──《云情人》思考
  17. html和js画圣诞树图片,教你如何把JavaScript代码写成圣诞树
  18. (4)tiny4412移植uboot_2018_07
  19. countdown软件测试死亡时间真假,countdown软件测试死亡时间真的吗?怎么回事
  20. ps和kill命令的参数及含义

热门文章

  1. 全球人工智能发展白皮书
  2. 全国计算机等级考试(NCRE)三级网络技术、四级网络工程师题库软件分享
  3. SVN客户端安装以及操作流程
  4. 【真正离线安装】Adobe Flash Player 32.0 插件离线安装包下载(无需联网安装)
  5. 数据产品-产品经理必备的七大文档
  6. csdn资源下载不了问题解决 360浏览器下载不了csdn资源问题解决
  7. AI算法工程师 | 01人工智能基础-快速入门
  8. 如何做好离职交接工作?
  9. 【流媒体服务】海康摄像头RTSP视频推流、转码、拉流、直播综合应用(六):【1】VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播
  10. 基于富士通编译器Softune的堆栈、变量、常量理解