优点:语法

面向对象

内存管理

和最棒的跨平台可移植性

缺点:

JVM Java(虚拟机)

编译后的字节码与平台无关。

你的朋友不会买一台真正的Java机器,但是他们都会有Java虚拟机(通过软件实现)。此虚拟机可以读取与执行字节码。

你要做的事情

1.编写源代码文件,用Javac编译程序把文件进行编译,然后在某个Java虚拟机上执行编译过的字节码。

4步:1.源代码Party.java  2.执行Javac程序来编译Party.java。3.编译成为代码:Party.class  4.启动Java虚拟机(JVM)来运行Party.class文件。JVM会将字节码转换成平台能够理解的形式来运行。

J2ME(Micro Edition)

J2SE(Standard Edition)

J2EE(Enterprise Edition)

数组容器

String[] a = {"1", "2", "3", "4", "5"};

继承、 覆盖。

当你在设计类时,要记住对象是靠类的模型塑造出来的。

你可以这样看:

1.对象是已知的事物

2.对象会执行的动作

对象本身已知的事物,被称为实例变量。它们代表对象的状态(数据),且该类型的每一个对象都会独立的拥有一份该类型的值。

所以你也可以把对象当作实例。

对象可以执行的动作叫做方法。在设计类时,你也会设计出操作对象数据的方法。对象带有读取或操作实例变量的方法是很常见的情形。举例来说,闹钟对象会有个变量来保存响铃时间,且会有getTime()与setTime()这两个方法来存取该时间。

因此说对象带有实例变量和方法,但它们都是类设计中的一部分。

二、类和对象两者之间的有什么不同?

类不是对象(却是用来创建它们的模型)

类是对象的蓝图。它会告诉虚拟机如何创建某种类型的对象。根据某类创建出的对象都会有自已的实例变量。举例来说,你可以根据按钮类来创建出许多大小、颜色、文字等不同的按钮。

也可以这样说,对象就好比通信薄中的一笔数据,通信薄的每张卡片都有相同的空白字段(实例变量)。填入新的联络人就如同创建新的实例(对象),填入卡片的数据代表联络人的状态。

这个卡片类上的方法就是你会对卡片作的事情:getTel()、changeAddress()、deleteCard()等。所以每张卡片上能够执行相同的操作,但取出的结果应该是依每张卡片各自独立的。

三、创建你的第一个对象

要作出哪些东西才会运用对象呢?你需要两个类。(例如说Dog、AlarmClock和Television等)一个是要被操作于对象的类,另外一个是要来测试该类的类。测试用的类带有main()并且你会在其中建立与存取被测的对象。

本章后续章节的内容会有许多双类的范例。测试用的类会被命名为“受测试类的名称”+ TestDrive。例如说要测试Bungee这个类,我们会作出一个带有main()的BungeeTestDrive。它会创建出Bungee的对象,并使用圈点(.)符号所代表的操作数来存取该对象的变量与方法。看过下面的范例后就应该更清楚了。

1.编写类

class Dog{

  int size;

String breed;

  String name;

  void brak(){

System.out.println("Ruff, Ruff!");

}

}

2.编写测试用的类

class DogTestDrive{

public static void  main(String[] args){

//Dog测试码

}

}

3.在测试用的类中建立对象并存取对象的变量和方法

class DogTestDrive{

public static void main(String[] args){

Dog d = new Dog();

d.size =  40;

d.bark();

}

}

如果你曾经学习过面向对象的话,你会知道我们并没有用到封装,第4章会讨论这个问题。

Head First Java.(第2版)的更多相关文章

  1. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

  2. 《Thinking In Java第四版》拾遗

    <Thinking In Java第四版>拾遗 转自我的github(http://katsurakkkk.github.io/2016/05/Thinking-In-Java%E7%AC ...

  3. Java实现简单版SVM

    Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的.         之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...

  4. 工厂方法模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...

  5. 抽象工厂模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操 ...

  6. 建造者模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...

  7. 《Effective Java(中文第二版)》【PDF】下载

    <Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...

  8. 《Effective Java中文版第二版》读书笔记

    说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个 ...

  9. 《Effective Java 第三版》新条目介绍

    版权声明:本文为博主原创文章,可以随意转载,不过请加上原文链接. https://blog.csdn.net/u014717036/article/details/80588806前言 从去年的3月份 ...

  10. Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)

    之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...

随机推荐

  1. 16. Antimalware (反病毒 3个)

    Malwarebytes反恶意软件是为Windows的恶意软件扫描程序. 作者声称使用各种技术来查找其他恶意软件扫描仪检测不到的恶意软件. 有一个有限选项的免费试用版和支持能够运行扫描计划的完整版本, ...

  2. 恢复win7快捷方式小箭头

    reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons&q ...

  3. day-13装饰器

    函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有函数的嵌套定义:1)函数fn2想直接使用fn1函数的局部变量,可以将fn2直接定义到fn1的内部,这样fn2就可以直接访问fn1的变量2 ...

  4. Web前端3.0时代,“程序猿”如何“渡劫升仙”

    Web前端入行门槛低,很多人在成为前端工程师后很容易进入工作的舒适区,认为该熟悉的业务已熟悉了,然后就是重复用轮子,这样很容易让自己的成长处于原地打转以及低水平重复的状态. 想要不被行业抛弃,就要努力 ...

  5. Asp.Net : Page.RegisterStartupScript及 不执行的原因

    RegisterStartupScript 把script放置在ASP.NET page的底部,而RegisterClientScriptBlock把script放置在ASP.NET page的顶部 ...

  6. Oracle数据csv导入

    打开工具,在tool下面有个Text Importer 先选择Data from textfile选项卡 然后选择 Open data file ,打开要导入的文件 1\ 2\ 再先选择Data to ...

  7. h5需要的浏览器插件

    google浏览器插件: web前段助手.vue-tools.草料二维码

  8. Eureka入门案例

    1.整体思路 1.1.服务注册中心Eureka(可以是一个集群,对外暴露自己的地址) 1.2.服务提供者:启动后向Eureka注册自己的信息(地址,提供什么服务) 1.3.客户端消费者:向Eureka ...

  9. GCD学习

    出自简书 : https://www.jianshu.com/p/2d57c72016c6 在 GCD 中有两种队列:串行队列和并发队列.两者都符合 FIFO(先进先出)的原则.两者的主要区别是:执行 ...

  10. isp

    Lens Shading可细分为Luma Shading(亮度均匀性)和Color Shading(色彩均匀性)两种.其中,Luma Shading就是我们常说的暗角.既图像呈现出中心区域较亮,四周偏 ...