JAVA 面向对象之 多态 本页面更新日期: 2016年07月30日前言 Java 引用变量有两个类型:一个是编译时类型一个是运行时类型 编译时类型由声明该变量时使用的类型决定. 运行时类型由实际赋给该变量的对象决定. 如果编译时类型和运行时类型不一致, 就可能出现所谓的多态(Polymorphism).多态性 先看下面程序class BaseClass{ public int book
JAVA面向对象 类的继承 本页面更新日期: 2016年07月30日前言 继承是面向对象的三大特征之一. 也是实现软件复用的重要手段. Java继承具有单继承的特点, 每个子类只有一个直接父类.继承的特点 Java的继承通过extends关键字实现. 实现继承的类被称为子类. 被继承的类被称为父类. 父类和子类的关系, 是一种一般和特殊的关系. 例如水果和苹果的关系, 苹果继承了水
JAVA 面向对象之深入构造器 本页面更新日期: 2016年07月23日前言: 构造器是一个特殊的方法. 这个特殊方法用于创建实例时执行初始化. 构造器是创建对象的重要途径. 因此, java类必需包含一个或一个以上的构造器.使用构造器执行初始化 构造器的最大的用处就是在创建对象时执行初始化. 前面说过, 当创建一个对象时, 系统为这个对象的实例变量进行默认初始化. 这种默认出的初始化会把所
Java 面向对象 package/import/import static 本页面更新日期: 2016年07月23日package 包 前面提到了包这个概念. 什么是包? 由于非常多的人参与 Java 的开发, 这难免会遇到一个问题 – 类名冲突. 也就是说难免会遇到重名的情况. 所以 Java 引入了包这个机制. 提供了类的多层命名空间. 用于解决类的命名冲突 / 类文件管理等问题. Java允许将一组功能相关的类放在同
JAVA 面向对象 隐藏和封装 本页面更新日期: 2016年07月22日前言 在前面程序中,经常出现通过某个对象直接访问其成员变量的情况. 这可能引起一些潜在问题,比如将某个 Person 的 age 成员变量直接设为 1000. 这在语法上没有任何问题, 但显然违背了当前的自然规律. 人怎么可能活到 1000岁 - - . (就现在的科学来讲) Java也考虑到了这种情况, 为你提供了 类和对象的成员变量
JAVA 面向对象 成员变量和局部变量 本页面更新日期: 2016年07月20日前言 在 Java语言中, 根据定义变量位置的不同,可以将变量分成两大类:成员变量局部变量 成员变量和局部变量的运行机制存在很大差异,下面我们看看差异在哪.成员变量 成员变量指的是在类里定义的变量. 局部变量指的是在方法里定义的变量. 下面我给出Java程序中的变量划分图: 成员变量被分为类变量和实例变量两种. 定义成员变
JAVA 面向对象之方法详解 本页面更新日期: 2016年07月18日前言 方法是类或对象 的行为特征的抽象. 方法是类或对象最重要的组成部分. 所有的方法都必需定义在类里. 方法不能独立存在. 方法在逻辑上要么属于类, 要么属于对象.方法的所属性 一旦将一个方法定义在某个类的类体内. 如果这个方法使用了static修饰符,则这个方法属于这个类. 否则这个方法属于这个类的实例.
JAVA面向对象 对象/引用 本页面更新日期: 2016年07月17日对象/引用 在前面 PersonTest.java 代码中, 有这样一行代码: Person p = new Person(); 这行代码创建了一个 Person 实例, 也被称为 Person对象,这个Person对象被赋给 p 变量. 这行代码实际产生了两个东西: 一个是 p 变量, 一个是 Person 对象. 从 Pers
JAVA 面向对象 类和对象 本页面更新日期: 2016年07月17日前言 Java 是面向对象的程序设计语言, Java 语言提供了 定义类, 成员变量, 方法 等基本功能. 类 可以被认为是一种自定义的数据类型. 可以使用类来 定义变量,所有使用类定义的变量都是 引用变量. 它们将会引用到 类的对象. 类用于描述客观世界里 某一类对象的共同特征. 而对象则是 类的具体存在. Java
JAVA 小练习 01 本页面更新日期: 2016年07月13日使用循环输出九九乘法表 开始我还一位要用到二维数组, 一个控制行数, 一个控制列数嘛. 后来我百度了一下, 被度娘打脸 - - . 其实只用二层循环就能搞定了… 发代码给你看看public class Multiplication{ public static void main(String[] args) { for(in
JAVA8 增强的工具类: Arrays 本页面更新日期: 2016年07月07日Arrays Java 提供的 Arrays 类里包含了一些 static 修饰的方法 可以直接操作数组. 这个 Arrays 类里包含了如下几个 static 修饰的方法(static 修饰的方法可以直接通过类名调用) 关于 static 的介绍以后会说, 暂时我们只需要看看 Arrays 都给我们提供了哪些方法用来操作数组.
Java 教程目录 JAVA 语言概述Java 语言的发展简史Java 程序运行机制开发 Java 的准备第一个 Java 程序Java 程序的基本规则JAVA 理解面向对象面向对象JAVA 数据类型Java 标识符和关键字Java 数据类型Java 基本类型的类型转换Java 直接量JAVA 运算符Java 运算符JAVA 流程控制Java 流程控制JAVA 数组Java 数组类型
Java 没有多维数组 本页面更新日期: 2016年07月06日 JAVA语言里提供了支持多维数组的语法. 但如果从数组的底层运行机制上来看,是没有多维数组的. JAVA语言里的数组类型是引用类型. 因此, 数组变量其实是一个引用, 这个引用指向真实的数组内存. 数组元素的类型也可以是引用,如果数组元素的引用再次指向真实的数组内存, 这种情形看上去就像多维数组. 不过首先, 我有个
JAVA 引用类型数组的初始化 本页面更新日期: 2016年06月30日 引用类型数组的数组元素是 引用. 我们之前学习过的基本类型数组, 它里面的数组元素存放的是具体的值. 可以当作我们现实生活中的买房, 基本类型数组呢, 就像是你直接找到了房主. 而引用类型数组就像是你没有直接找到房主, 而是通过中介找到了房主. 为了更好的说明引用类型数组的运行过程, 下面先定义一个 Person 类 (所有类
JAVA 基本类型数组的初始化(原理篇) 本页面更新日期: 2016年06月25日前言 在之前的学习中, 我们已经会 初始化数组了. 但是你真的了解其内部都发生了什么嘛? 下面让我们探究一下. 扒光数组的华丽外衣, 嘿嘿. 对于 基本类型数组而言, 数组元素的值 是直接存储在 对应的数组元素中. 因此, 初始化数组时, 先为该数组分配内存空间, 然后直接将数组元素的值 存入对应的数组元素中去. 看上图, 其中 1,2,
JAVA 深入数组之 内存中的数组 本页面更新日期: 2016年06月23日前言 数组是一种引用数据类型. 数组引用变量只是一个引用. 数组元素和数组变量在内存里是分开存放的. 下面将深入介绍数组在内存中的运行机制.内存中的数组 数组引用变量只是一个引用. 这个引用变量可以指向任何有效的内存. 只有当该引用指向有效内存后, 才可以通过该数组变量来访问数组元素. 与所有引用变量相同的是,
使用 JAVA 数组 本页面更新日期: 2016年06月23日前言 数组最常用的用法 就是访问数组元素. 包括对数组元素进行赋值和取出数组元素的值. 访问数组元素都是通过在 数组引用变量后紧跟一个方括号[] 方括号里 [] 是数组元素的 索引值 , 这样就可以访问数组元素了. 访问到数组元素后, 就可以把一个数组元素当成一个普通变量使用了. Java 语言的数组索引是从 0 开始的
JAVA 数组的初始化 本页面更新日期: 2016年06月23日 java 语言中, 数组必需初始化之后才可以使用. 那么什么是初始化? 就是为数组的 数组元素 分配内存空间, 并为每个数组元素赋初始值. 数组的初始化有如下两种方式:静态初始化: 初始化时由程序员显式指定 每个数组元素的初始值, 由系统决定数组长度.动态初始化: 初始化时程序员只指定数组长度, 由系统为数组元素分配初始值.静态初始
JAVA 定义数组 本页面更新日期: 2016年06月23日 JAVA 语言支持两种语法来定义数组type[] arrayName;type arrayName[]; 根据我们之前经常写的这句话: String[] args 就可以知道 这货是个数组. 所以我更喜欢第一种语法格式. type[] arrayName; 我们来解读一下这个语法. 对于 type[] arrayName; 而言