![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础学习笔记
文章平均质量分 67
WingOfDust
这个作者很懒,什么都没留下…
展开
-
九. 初探集合
九. 初探集合通常,程序总是根据运行时才知道的某些条件去创建新的对象,在此之前,无法知道所需对象的数量甚至确切类型。为了解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。Java有多种方式保存对象(确切地说,是对象的引用)。例如数组,是保存一组对象的最有效的方式,但是数组具有固定的大小尺寸,在很多时候可能需要一种更灵活的或支持更复杂的存储对象的方式。为此,java.util 库提供了一套相当完整的 集合类(又称容器类)来解决这个问题,其中基本的类型有 List 、 Set 、 Queu原创 2020-07-26 18:11:17 · 127 阅读 · 0 评论 -
八. 内部类
内部类是一种非常有用的特性,它允许我们把一些逻辑相关的类组织在一起,并控制位于内部的类的可见性。然而内部类与组合是完全不同的概念,它了解外部类,并能与之通信,而且用内部类写出的代码更加优雅而清晰,尽管并不总是这样(Java 8 的 Lambda 表达式和方法引用减少了编写内部类的需求)。1. 创建内部类很简单,就是把类的定义置于外部类的里面:public class Test { class Test2 { private int i; Test2(int原创 2020-07-25 17:58:25 · 117 阅读 · 0 评论 -
七. 抽象类与接口
1. 抽象类和方法在多态的 Fruit 例子中,可以把 Fruit 创建为抽象类,因为它的实际对象基本没有意义。创建一个抽象类是为了通过通用“接口”操纵一系列类。Java 提供了一个叫做抽象方法的机制,这个方法是不完整的:它只有声明,没有方法体。语法如下:abstract void f();包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,那么类本身也必须限定为抽象的,否则,编译器会报错。如果一个抽象类是不完整的,当试图创建这个类的对象时,Java 不会创建抽象类的对象,只会得到编译原创 2020-07-24 14:22:53 · 116 阅读 · 0 评论 -
六. 多态
六. 多态多态是面向对象编程语言中,继封装和继承之外的第三个重要特性。多态主要是消除类型之间的耦合。1. 方法调用绑定将一个方法调用和一个方法主体关联起来称作绑定。若绑定发生在程序运行前(如果有的话,由编译器和链接器实现),叫做前期绑定。多态的一个特点是父类引用指向子类对象,在编译时编译器只看作父类的类型,无法得知究竟会调用哪个方法,而在运行时才确定对象类型。通过一种后期绑定也叫动态绑定的方法来实现。代码示例:public class Test { public static void原创 2020-07-23 21:28:33 · 138 阅读 · 0 评论 -
五. 复用和final关键字的使用
五. 复用和final关键字的使用对于像 C 语言等面向过程语言来说,“复用”通常指的就是“复制代码”。任何语言都可通过简单复制来达到代码复用的目的,但是这样做的效果并不好。Java 围绕“类”(Class)来解决问题。我们可以直接使用别人构建或调试过的代码,而非创建新类、重新开始。以下介绍两种方式:组合和继承。1. 组合语法简单来说,就是把对象的引用放置在一个新的类里,便是使用了组合。编译器不会为每个引用创建一个默认对象,因为在许多情况下,这会导致不必要的开销。初始化引用有四种方法:当对原创 2020-07-22 20:21:57 · 117 阅读 · 0 评论 -
四. 封装
1. 包的概念包内包含一组类,它们被组织在一个单独的命名空间(namespace)下。可以使用 import 关键字导入某个类,如:import java.util.ArrayList;如果想用这个包下的其他类,可以再同上一样导入,也可以用*符号导入该包下的所有类,如:import java.util.*一个 Java 源代码文件称为一个编译单元(compilation unit)。每个编译单元的文件名后缀必须是 .java。在编译单元中最多只能有一个 public 类,它的类名必须与文件名相原创 2020-07-21 11:29:30 · 536 阅读 · 0 评论 -
三. 初始化和清理
1. 利用构造器保证初始化在Java中,类的设计者通过构造器保证每个对象的初始化。有了构造器,那么Java会在用户使用对象之前(即对象刚创建完成)自动调用对象的构造器方法,从而保证初始化。Java中使用了与C++相同的方式:构造器名称与类名相同。如果类中没有定义任何构造器,编译器会自动生成默认的无参构造器。注意:构造器没有返回值,却同时也没有给你选择的余地(new表达式虽然返回了刚创建的对象的引用,但构造器本身却没有返回任何值)。如果它有返回值,并且可以自己选择让它返回什么,那么编译器就还得知道接下来该原创 2020-07-20 16:23:18 · 66 阅读 · 0 评论 -
二. 万物皆对象
二. 万物皆对象1. 面向过程与面向对象面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。2. 对象操纵在C/C++中,通过指针操纵对象。在Java中,万物皆可为对象,但我们所操纵的标识符只是对对象的"引用"。一个"引用"不一定有对象与之关联,如:String s;只创建了一个String对象的引用,而原创 2020-07-19 20:09:44 · 138 阅读 · 0 评论 -
一. 对象的概念
一. 对象的概念1. 抽象所有编程语言都提供抽象,如:汇编语言是对底层机器的轻微抽象,"命令式"语言(FORTRAN,BASIC和C)是对汇编语言的抽象,但这些抽象原理仍需要我们着重考虑计算机的结构,而非问题的本身。不过,现在许多面向对象的程序设计可以让我们在读描述解决方案的代码时,也在阅读问题的表述。(即我们关注对象的概念,这些概念是站在"问题空间"的,而不是站在计算机角度的"解决方案空间")每个对象与现实中的"对象"或"物体"相似,有自己的特征和行为。一个对象有自己的状态,行为和标识,即有自己的原创 2020-07-19 11:31:12 · 566 阅读 · 0 评论