adult

Java的四个标记接口:Serializable、Cloneable、RandomAccess和Remote接口

社会主义新天地 提交于 2020-02-19 22:43:34
一、概述 标记接口是一些没有属性和方法的接口,也是一种设计思想。Java中的一个标记接口表示的的是一种类的特性,实现了该标记接口的类则具有该特性。如实现了Serializable接口的类,表示这个类的对象是可以进行序列化和反序列化的。Java中常见的标记接口还有Cloneable接口、RandomAccess接口和Remote接口。可以用 if(对象名 instanceof 标记接口名)检测一个类是否实现某个标记接口。 二、四个标记接口的浅析 1、java.io.Serializable标记接口 该接口用来标记类的对象是否能够可以进行序列化,或者说串行化。将对象序列化之后,可以进行持久化的储存以及在网络中进行传输。如把对象变成字节流写入到一个文件中,就是一个序列化的过程,实现了对象的持久化储存,然后你的程序可以从这个文件中读取序列化的对象并且把它还原成原来的对象,进行反序列化。如果进行序列化的类的对象没有实现Serializable接口,则会抛出NotSerializableException。 1)对象序列化有哪些特点? 在对象序列化时,该对象引用的实例变量也会被序列化,如果这个实例变量是一个对象,这个对象也会被序列化。被transient修饰的实例变量也不参与序列化。在对象反序列化时transient修饰的变量将重新初始化,对象初始为null,基本数据类型被初始化为0

event demo

半腔热情 提交于 2019-12-05 09:40:35
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics; namespace ConsoleApp392 { class Program { static void Main(string[] args) { Adult adult = new Adult(18); adult.AdultEvent += Adult_AdultEvent; adult.Age = 20; Console.ReadLine(); } private static void Adult_AdultEvent(object sender, AdultArgs e) { string msg = string.Empty; int newAge = e.AdultAge; if(newAge>=18) { msg = "Adult"; } else { msg = "Adolescent"; } Console.WriteLine($"The newly updated age is {newAge} and it's {msg} "); } } public class