图源:PHP中文网 本篇文章是Java编程笔记8:容器(上) - 魔芋红茶's blog (icexmoon.xyz)的下篇。 Set Set也是一种常见的数据类型,很多编程语言都会提供这种容器。它的主要用途有两个: 提供一个可供查询的去重容器。 进行集合运算。 在Java中,Set是一个继承自Collection的接口: public interface Set<E> extends Collection<E> { int size(); boolean isEmpty(); …
图源:PHP中文网 本篇文章是Java编程笔记8:容器(上) - 魔芋红茶's blog (icexmoon.xyz)的下篇。 Set Set也是一种常见的数据类型,很多编程语言都会提供这种容器。它的主要用途有两个: 提供一个可供查询的去重容器。 进行集合运算。 在Java中,Set是一个继承自Collection的接口: public interface Set<E> extends Collection<E> { int size(); boolean isEmpty(); …
图源:PHP中文网 容器是编程语言的重要组成部分,容器和语言风格是紧密相关的,比如Python中的列表、元组、map等,Go的切片、映射等。 本篇文章将探讨Java中的容器。 Collection Java中的容器可以大致分为Collection和Map两类,其中Collection包括List、Set、Query等可以保存一系列元素的容器。Map代表一种可以保存键值对的映射类型。 Collection可以被翻译作集合,但是Set同样可以被翻译作集合,但两者本质上是不一样的,前者泛指一类可以保存元素的容器,而后者指…
图源:PHP中文网 所谓的内部类,其实就是定义在类中的类。这和Java编程笔记6:接口 - 魔芋红茶's blog (icexmoon.xyz)中提到的接口嵌套的方式有点相似。不过内部类比接口嵌套更常见,也更有用。 内部类 定义内部类并不困难: package ch7.inner_class; import java.util.Random; import util.Fmt; class OulterClass { protected class InnerClass { priva…
图源:PHP中文网 在Java中,接口可能只是特指使用interface关键字声明的一种抽象类型,但实际上在UML或者OOP中,接口往往是作为一种底层抽象概念而言的,其具体实现可能是接口也可能是抽象类,甚至因为语言的差异会有很大区别。 抽象类 在Java中,可以使用abstract将一个类声明为抽象类,被声明为抽象类的类不能被实例化: package ch6.abstract1; abstract class MyClass{ } public class Main { public static…
图源:PHP中文网 在上篇Java编程笔记4:复用类 - 魔芋红茶's blog (icexmoon.xyz)中,提到了向上转型,子类对象在被当做父类对待时,依然可以正常调用子类实例的方法,实际上这就是多态,或者说方法的多态调用。 多态 方法绑定 之所以编程语言中通过方法名加括号,就可以在程序运行时在合适的时机执行相应的方法,这是因为编译器会对方法调用的相关语句进行方法绑定。 事实上通常所说的方法绑定都是在编译时完成的,因为编译时编译器就可以知晓方法调用对应的方法定义,但有种例外,就是多态: package ch5…
图源:Java Switch语句(用法详解)-java教程-PHP中文网 类是OOP编程中的代码组织单元,无论是OOP的类还是面向过程的函数,其目的都是为了实现代码复用。 通过类实现代码复用的两大途径是:继承和组合。 组合 组合,简单地说就是将一个类地实例以属性地方式存在于另一个类中。 package ch4.compose; class Compose { } public class MyClass { private Compose compose; ... } 当然,这样地compose仅…
图源:Java Switch语句(用法详解)-java教程-PHP中文网 包:库单元 在编写代码的时候,通常会将当前已经命名的变量集合称作“命名空间”,如果仅涉及自己编写的代码,一般来说命名空间中的名称不会出现冲突,但如果引入标准库或者第三方库的代码,就容易出现命名冲突的问题。 显然一个个修改变量名是不可取的,对此,大多数编程语言都会采用包的方式组织和管理代码,以解决此类问题。 代码组织 在Java编程笔记0:Hello World - 魔芋红茶's blog (icexmoon.xyz)中我介绍过如何使用VSC构…
图源:Java Switch语句(用法详解)-java教程-PHP中文网 构造器 构造器,在编程领域也会被称作构造函数。事实上我觉得这个名称并不是很恰当,可能相当一部分人想当然地认为构造器的作用是用来创建对象。这话对也不对,对是因为当你使用new关键字时,的确对应类的构造函数会被调用,参与到的对象创建中。但实际上执行构造函数的时候,对象其实已经创建,这也是为什么在构造函数中可以使用this关键字来调用当前对象的引用。 所以准确地讲,构造器应当被称作“初始化函数”,其用途是初始化对象。 这点在Python中显得尤为明…
图源:Java Switch语句(用法详解)-java教程-PHP中文网 发现Java环境这块还是应该说一下的,回来补一篇。 传统方式 最传统最简单的编写和运行Java程序的方式是从网上下载JDK安装包,编写源码后直接用命令行执行程序。 现在有多种不同的公司出品的JDK(比如微软的基于OpenJDK出了一款),但学习的话还是推荐Oracle自家的: Java Downloads | Oracle 安装没啥好说的,装好后可以在命令行下验证: ❯ java --version openjdk 16.0.1 2021-0…
图源:Java Switch语句(用法详解)-java教程-PHP中文网 这个新开的系列以《Java编程思想》为主要参考资料。原书成书很早,在05年左右更新了第四版之后至今没有更新。原书基于JavaSE5/6编写,目前JDK的最新版本是17,这里我使用的是JDK16.0.1,所有原书示例和内容也将在这个版本下由我进行验证。如果和原书有出入,说明JDK的相应功能已发生改变,我会额外说明。 和《Java编程思想》一样,这里仅会列出Java有别于其它编程语言的部分,相似的部分不会重复说明。 当然,这种“有别”是主观的,我…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang