自己生成电子签名
你是否还在为同学白瞟你的实验报告而烦恼呢,你是否还在为别人copy你的代码而忧愁呢。下面教你一个方法,生成自己名字的电子标签(完全是之前学过的内容,相当于是一个小回顾吧)
第一步,先生成自己名字的字节码
public class Test {
public static void main(String[] args) {
String str = "张澳琪";
System.out.println(Arrays.toString(str.getBytes()));
//你名字的字节码:[-27, -68, -96, -26, -66, -77, -25, -112, -86]
}
}
第二步,实现
public class ObservObject {
private final byte[] token = {-27, -68, -96, -26, -66, -77, -25, -112, -86};
// public void showCopyRight() {
// try {
// System.out.println(new String(token,"UTF-8"));
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
// }
// 这样的方法,在调用时可以看出来,还是有点不保险。下面用另一种办法:重写toString
@Override //重写toString方法,这个知识马上会讲解
public String toString() {
return "hahaha";
}
public final String toString(String tag) {//这个toString方法可以写到父类里面,且写成final,子类继承但不能再重写这个方法。(复习一下final关键字)
// (把一些工具都写在父类里,要想实现必须继承父类)然后交作业时父类文件只给.class类型的,就OK了。别人想改都改不了。这样就能证明是自己的作业啦
switch (tag) {
case "whoami":
try {
return new String(token,"UTF-8");//把字节码转为utf-8格式输出
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
default:
return this.toString();
}
}
}
//全程没有出现一个我的名字,但是最后还是会输出我的名字
场景类
public class Main {
public static void main(String[] args) throws UnsupportedEncodingException{
ObservObject observObject = new ObservObject();
System.out.println(observObject);//输出hahaha
System.out.println(observObject.toString("whoami"));//只要我输入whoami就会输出我的名字
}
}
以上就是一个小练笔,消除一下学习的枯燥过程,感兴趣的同学可以试着玩一玩,也是对之前学习的东西做一个小回顾。