图源:PHP中文网 容器中的泛型 泛型存在的理由之一是解决容器可以持有不同类型的数据的问题。 假设有一个最简单的容器: package ch13.container; import util.Fmt; class SimpleContainer { private Object content; public SimpleContainer(Object content) { this.content = content; } public Object getC…
图源:PHP中文网 容器中的泛型 泛型存在的理由之一是解决容器可以持有不同类型的数据的问题。 假设有一个最简单的容器: package ch13.container; import util.Fmt; class SimpleContainer { private Object content; public SimpleContainer(Object content) { this.content = content; } public Object getC…
图源:PHP中文网 Class对象 为了实现多态,必然需要在运行时知晓当前对象的实际类型,Java通过在对象中记录一个Class对象引用来解决这个问题。 所谓的Class对象,实际上就是用于表示当前对象的类型,并作为当前对象创建时的”类型模板“。可以简单地看作是”对象化的类“。 通常我们所说的类(class)都是指源码中的静态类定义,而程序真正编译和运行的时候,编译器会读取源码并加载相应的类定义,在内存中创建相应的对象作为类定义的”动态实现“,并依赖这些对象完成相应类实例的创建和类属性的访问工作,这些对象就是Cla…
图源:PHP中文网 字符串连接 字符串连接是程序中最常使用的对字符串的操作,看一个最简单的例子: package ch11.conn; public class Main { public static void main(String[] args) { String a = "hellow"; String b = "world"; String c = "!"; String result = a + b + c; } } 表面上看,程序中…
图源:PHP中文网 Java中的异常类都继承自Throwable,这是所有异常的基类。异常类型中有这几个类比较重要: 其中Throwable是基类,凡是Throwable的子类型都可以被当做异常抛出或捕获。Exception是开发者常打交道的异常类型,如果需要在程序中抛出异常,可以使用内置的继承自Exception的子类,也可以自行创建一个继承自Exception的异常类,所以可以将Exception及其子类异常称作"用户异常"(customer exception)。Error这类异常由JVM管理,一般不需要开发…
图源: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仅…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED. 本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang