优点:语法

面向对象

内存管理

和最棒的跨平台可移植性

缺点:

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. 内网渗透 关于GPO

    网上有很多讲内网渗透的文章,但看来看去还是一老外的博客给力,博客地址:www.harmj0y.net/blog,看完就明白这里面的很多思路都非常好. 做内网时,有时会碰到目标的机器开防火墙,所有端口基 ...

  2. 命令行编译多个java文件

    如何使用命令行编译多个java文件 文件结构: method 1 cd javaproject javac -sourcepath javapath -d classpath javapath/*.j ...

  3. SQL server 建立标后,执行代码添加外键

    alter table dbo.student add constraint FK_tstudent_class foreign key(classno) references dbo.class(c ...

  4. Android Studio学习NO.1 了解项目资源

    2018.3.1 12:40:51 阅读书籍:第一行代码 1. res目录 drawable 图片 mipmap 图标 values 字符串.样式.颜色 layout 布局 2. 引用(可在Andro ...

  5. Java(常用排序算法)

    冒泡排序 比较相邻的元素.如果第一个比第二个大,就交换他们两个,对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最 ...

  6. MySQL 数据表操作

    MySQL 数据表操作 创建MySQL数据表需要以下信息: -表名: -表字段名: -定义每个表字段: 一.创建数据表 1)mysql> create  table  table_name (c ...

  7. docker 创建docker用户组,应用用户加入用户组

    在Linux系统下使用docker,为了避免每次输入命令都需要sudo,可以把用户加入docker用户组 创建docker用户组 sudo groupadd docker 普通用户加入docker用户 ...

  8. long和int互转

    现在分long,Long,int,Integer互相转换,分8种情况 a     ,    b long, int                b=(int)a; long,Integer      ...

  9. cellmap 基站查询 for android

    cellmap for android 3.6.8.8.1.8 更新日期:2019年4月28日 特别声明:本软件不能进行手机定位,不能对手机号码定位,谨防被骗. 安装说明:请卸载旧版本后,重新下载安装 ...

  10. NGUI外包开发总结一下今天的收获

    先总结一下今天的收获:在一个脚本类中对其成员变量进行初始化时,什么时候在Awake()中,什么时候在Start()中是有讲究的. 1)当成员变量会被外部脚本引用时,尤其是该成员变量是一个自己定义的非脚 ...