当前位置: 首页 > news >正文

荥阳网站建设定制网站建设案例课堂

荥阳网站建设,定制网站建设案例课堂,seo培训师,长沙做医院的网站建设注解定义#xff1a; 注解是一种注释机制#xff0c;它可以注释包、类、方法、变量、参数#xff0c;在编译器生成类文件时#xff0c;标注可以被嵌入到字节码中。注解的分类#xff1a;内置注解Override :重写方法#xff0c;引用时没有该方法时会编译错误public class …注解定义 注解是一种注释机制它可以注释包、类、方法、变量、参数在编译器生成类文件时标注可以被嵌入到字节码中。注解的分类内置注解 Override :重写方法引用时没有该方法时会编译错误public class Animals {public void run(){System.out.println(动物跑);} }public class Cat extends Animals{Overridepublic void run1() {super.run();} }Deprecated :标记过时方法会造成编译警告public class Animals {Deprecatedpublic void run(){System.out.println(动物跑);} }SuppressWarnings :用于编译器去忽略注解中的声明报告FunctionalInterface 用于指示被修饰的接口是函数式接口元注解(修饰注解的注解)Retention -标记这个注解存储在哪里Documented -标记这些注解是否包含在用户文档中Target -标记这些注解时java哪种成员public enum ElementType {/** Class, interface (including annotation type), or enum declaration *///可以应用于类的任何元素TYPE,//可以用于字段或属性/** Field declaration (includes enum constants) */FIELD,//可以用于方法级注释/** Method declaration */METHOD,//可以用于方法的参数/** Formal parameter declaration */PARAMETER,//可以应用于构造函数/** Constructor declaration */CONSTRUCTOR,//可以用于局部变量/** Local variable declaration */LOCAL_VARIABLE,/** Annotation type declaration */ANNOTATION_TYPE,//可以用于包声明/** Package declaration */PACKAGE,/*** Type parameter declaration** since 1.8*/TYPE_PARAMETER,/*** Use of a type** since 1.8*/TYPE_USE }Inherited -标记这个注解时继承于哪个类Repeatable -标识某注解可以在同一个声明上使用多次public enum RetentionPolicy {/*** Annotations are to be discarded by the compiler.*/SOURCE,//在源文件中有效源文件保存/*** Annotations are to be recorded in the class file by the compiler* but need not be retained by the VM at run time. This is the default* behavior.*/CLASS,//在class文件中有效class保存/*** Annotations are to be recorded in the class file by the compiler and* retained by the VM at run time, so they may be read reflectively.** see java.lang.reflect.AnnotatedElement*/RUNTIME//在运行时有效运行时保留 }自定义注解注解类Target(ElementType.FIELD)//作用在类的属性上 Retention(RetentionPolicy.RUNTIME)//运行时生效 public interface NotNull {String message() default ;int length() default 0;String lengthmessage() default ; }model类public class User {private int num;NotNull(message姓名不能为空,length3,lengthmessage长度不能小于3)private String name;public String getName() {return name;}public void setName(String name) {this.name name;}public int getNum() {return num;}public void setNum(int num) {this.num num;}}测试代码public class Test {public static void main(String[] args) throws NoSuchMethodException, SecurityException, Exception {User usernew User();Field[] fieldsuser.getClass().getDeclaredFields();//将类中的字段存储在field数组中//对数组中的字段进行强循环for(Field filed:fields){NotNull notNullfiled.getAnnotation(NotNull.class);//获取注释类型if(notNull!null){Method method user.getClass().getMethod(get getMethodName(filed.getName()));//获取方法对象Object value method.invoke(user);//调用类的实例对象if(valuenull){System.err.println(filed.getName()notNull.message());//打印输出相应的字段和注释信息throw new NullPointerException(notNull.message());//抛出异常信息}else if(String.valueOf(value).length() notNull.length()){//判断字符串长度System.err.println(filed.getName()notNull.lengthmessage());}}}}/*** 把一个字符串的第一个字母大写*/private static String getMethodName(String fildeName) throws Exception {byte[] items fildeName.getBytes();items[0] (byte) ((char) items[0] - a A);return new String(items);} } 对象克隆原因new出来的对象属性都是初始化的值不能保存当前对象“状态”clone解决了这个问题//这种形式的代码复制的是引用即对象在内存中的地址car1和car2指向同一个对象 Car car1new Car(); Car car2car1;如何实现克隆克隆分为浅克隆和深克隆下面就简单的介绍它们之前的区别浅克隆值类型克隆值引用类型传递地址model类public class Person implements Cloneable{int num;String name;Address address;public Person() {}public Person(int num, String name) {this.num num;this.name name;}public int getNum() {return num;}public void setNum(int num) {this.num num;}public String getName() {return name;}public void setName(String name) {this.name name;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address address;}Overrideprotected Person clone() throws CloneNotSupportedException {Person person (Person)super.clone();// person.address (Address)address.clone(); //深度复制 联同person中关联的对象也一同克隆.return person;}Overridepublic String toString() {return Person{ num num , name name \ , address address };} }引用类public class Address {String address;public String getAddress() {return address;}public void setAddress(String address) {this.address address;}Overridepublic String toString() {return Address{ address address \ };}Overrideprotected Address clone() throws CloneNotSupportedException {return (Address)super.clone();} }测试类public class Test {public static void main(String[] args) throws CloneNotSupportedException {Address address new Address();address.setAddress(汉中);Person p1 new Person(100,jim);p1.setAddress(address);Person p2 p1.clone();p2.setName(tom);address.setAddress(西安);//System.out.println(p1);} } 浅克隆中引用对象进行的是引用地址传递原引用对象和克隆对象指向同一个引用地址强克隆值类型克隆值引用类型克隆一个带有原数据的新的地址引用类public class Address implements Cloneable{String address;public String getAddress() {return address;}public void setAddress(String address) {this.address address;}Overridepublic String toString() {return Address{ address address \ };}Overrideprotected Address clone() throws CloneNotSupportedException {return (Address)super.clone();} }model类public class Person implements Cloneable{int num;String name;Address address;public Person() {}public Person(int num, String name) {this.num num;this.name name;}public int getNum() {return num;}public void setNum(int num) {this.num num;}public String getName() {return name;}public void setName(String name) {this.name name;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address address;}Overrideprotected Person clone() throws CloneNotSupportedException {Person person (Person)super.clone();person.address (Address)address.clone(); //深度复制 联同person中关联的对象也一同克隆.return person;}Overridepublic String toString() {return Person{ num num , name name \ , address address };} }测试public class Test {public static void main(String[] args) throws CloneNotSupportedException {Address address new Address();address.setAddress(汉中);Person p1 new Person(100,jim);p1.setAddress(address);Person p2 p1.clone();p2.setName(tom);address.setAddress(西安);System.out.println(p1);System.out.println(p2);} }强克隆中的引用类型新创建的地址赋给克隆对象引用类型我们也可以通过序列化的方式对对象进行克隆代码如下引用类public class Address implements Serializable {String address;public String getAddress() {return address;}public void setAddress(String address) {this.address address;}Overridepublic String toString() {return Address{ address address \ };}}model类 public class Person implements Serializable {int num;String name;Address address;public Person() {}public Person(int num, String name) {this.num num;this.name name;}public int getNum() {return num;}public void setNum(int num) {this.num num;}public String getName() {return name;}public void setName(String name) {this.name name;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address address;}/*** 自定义克隆方法* return*/public Person myclone() {Person person null;try { // 将该对象序列化成流,因为写在流里的是对象的一个拷贝而原对象仍然存在于JVM里面。所以利用这个特性可以实现对象的深拷贝ByteArrayOutputStream baos new ByteArrayOutputStream();ObjectOutputStream oos new ObjectOutputStream(baos);oos.writeObject(this);// 将流序列化成对象ByteArrayInputStream bais new ByteArrayInputStream(baos.toByteArray());ObjectInputStream ois new ObjectInputStream(bais);person (Person) ois.readObject();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return person;}Overridepublic String toString() {return Person{ num num , name name \ , address address };} }测试类public class Test {public static void main(String[] args) throws CloneNotSupportedException {Address address new Address();address.setAddress(汉中);Person p1 new Person(100,jim);p1.setAddress(address);Person p2 p1.myclone();p2.setName(tom);address.setAddress(西安);System.out.println(p1);System.out.println(p2);} }
http://www.hkea.cn/news/14334239/

相关文章:

  • 自己做网站赚佣金做网站需要哪些成本
  • wordpress 建站对比app 设计网站建设
  • 网站icp备案咋做营销型类型网站多少钱些
  • 广东网站建设模版长沙0731房地产网
  • 苏州网站制作开发麻油厂网站怎么做
  • 广告体验程序网站开发秦皇岛网站制作哪个好
  • 宁波专业品牌网站制作外包专做母婴的网站
  • 高校网站建设需求分析wordpress 混合移动app
  • 网站快速备案公司公司有域名的怎么建设网站
  • 视频网站 php源码百度云虚拟主机wordpress伪静态
  • wordpress纯静态网站定制网站开发是什么
  • 个人备案的域名可以做网站吗视觉传达设计公司排名前十强
  • 网站建设企业邮箱制作网站企业免费自助建站系统
  • 企业所得税怎么算公式广西seo网站推广
  • 青岛制作游戏优化大师
  • 网站开发及流行框架如何自己做网站及优化
  • 专门做金融的招聘网站网站开发项目源码
  • 查看网站被恶意镜像重庆做网站建设
  • 陕西城乡住房建设部网站wordpress 密码注册
  • 长治个人网站建设常州 招网站开发
  • 最好的品牌设计网站建设南京哪家网络公司做网站优化好
  • 全自动建站系统源码网站建设服务费标准
  • 新乡建设企业网站200m的空间可以做大大的网站
  • 网站建设设计说明书天猫商城网官网
  • 自己做网站需要啥做爰全过程免费的视频网站
  • 做网站找俊义 合优网站备案找回密码
  • 可信赖的南昌网站制作整站seo优化
  • wordpress评分管理seo课程培训课程
  • 花生壳做局域网站WordPress推送服务
  • 阿里云 网站备案wordpress 多模板下载