构造方法的作用

构造方法的作用之一就是实例化对象,之前对此一直都不是很了解,为什么要实例化对象呢?我们知道对象具有一定的属性,例如姓名,年龄,身高等,我们在定义类的时候就得要定义这些属性,但是实例化的意思是什么呢?就是通过这些属性,把这些人实际的表达出来,通过属性或方法来实例一个人。

[java] view plain copy
  1. public Person{//定义了一个人的属性,具备一些特征和功能
  2. String name;
  3. int age;
  4. float  height;
  5. void talk(){};
  6. //我们可以将定义的属性和方法组合起来,就可以组合成一个人了
  7. Person(String name,int age,float height){
  8. This.name=name;
  9. This.age=age;
  10. This.height=height;
  11. }
  12. }
  13. //组合完成之后,便可以定义不同的人了
  14. Public class Gouzao{
  15. Public static void main(String[] args){
  16. Person    ren1=new Person(“张三”,20,180);
  17. ren1.talk();
  18. Person    ren2=new Person(“李四”,25,170);
  19. ren2.talk();
  20. Person    ren3=new Person(“王二”,30,185);
  21. ren3.talk();
  22. <span style="white-space:pre">    </span>}
  23. }

如果没有构造方法,我们得要这样写:Person   ren1=new Person();

Ren1.name=(“张三”);   ren1.age=20; ren1.height=180;  多麻烦……所以用构造方法,相当于建立了一个代码块,直接填充进去就可以……

----------------------------------------------------------分割线-------------------------

封装的高复用泛型类,运用了构造方法,以及创建成功的返回方法,和错误的放回方法

package com.mmall.common;import com.sun.org.apache.regexp.internal.RE;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.map.annotate.JsonSerialize;import java.io.Serializable;/*** Created by qxl on* 2018/4/6** 1. 高封装类* 2. 序列化的结果返回给前端* 3.有的时候需要返回data (对象),有的时候不需要,* 4.不要null* 5. 如果只需要status,可以直接返回status。没有msg 没有data* /**** 在我们使用泛型类的时候,虽然传入了不通的泛型实参,但并没有真正意义上生成不通的类型* 传入不通泛型实参的泛型类在内存上只有一个,即还是原来的最基本的类型,本实例中为ox,* 当然,在逻辑上我们可以理解成多个不通的泛型类型** 究其原因,在余java泛型的这一概念提出的母的,导致其只是作用与代码编译阶段,在编译过程中,* 对于检验法宁结果后,会将法宁的相关信息擦出,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段** 对此总结成一句话: 泛型类型在逻辑上看以看成是多个不通的类型,实际上都是相同的基本类型。**/@JsonSerialize( include = JsonSerialize.Inclusion.NON_NULL)
// 不要null  报纸序列化json时候,如果是null的对象,key也会消息
// 返回json中去除null字段
public class ServerResponse<T> implements Serializable {//status   跟ajax返回的一致private int status;//infoprivate String msg;//对象private T data;//构造方法private ServerResponse(int status){this.status =status;}private ServerResponse(int status,T data){this.status =status;this.data = data;}private  ServerResponse(int status,String msg){this.status =status;this.msg = msg;}private ServerResponse(String msg){this.msg = msg;}private ServerResponse(int status,String msg,T data){this.status =status;this.msg = msg;this.data = data;}/*** 疑点 :T任意对象  用String到底是哪一个*//* public static void main(String[] args) {ServerResponse sr1 =new ServerResponse(1,new Object());ServerResponse hello = new ServerResponse(1, "hello");System.out.println("console");}*//*** 是否成功 0成功  1失败* @return*//*** boolean 显示在json中* 1、加注解 @JsonIgnore 就不会显示在json里面* @return*/@JsonIgnore//不在json序列化结果之中public  boolean isSuccess(){//是0状态成功  1状态是失败return this.status == ResponseCode.SUCCESS.getCode();}//这三个就在public  int getStatus(){return status;}public   String getMsg(){return msg;}public T getData(){return data;}/*** 創建成功 返回一個status状态* @param <T>* @return*/public static <T> ServerResponse<T> createBySuccess (){return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());}/*** 成功返回 和 消息* @param msg* @param <T>* @return*/public  static <T> ServerResponse<T> createBySuccessMessage(String msg){return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg);}/*** 成功状态   和 对象* @param data* @param <T>* @return*/public  static <T> ServerResponse<T> createBySuccessData(T data){return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data);}/***  成功状态  和 消息  对象* @param msg* @param data* @param <T>* @return*/public  static <T> ServerResponse<T> createBySuccessData(String msg,T data){return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg,data);}/*** 错误* @param <T>* @return*/public  static <T> ServerResponse<T> createByError(){return new ServerResponse<T>(ResponseCode.ERROR.getCode());}/*** 错误的状态  和 消息* @param errormsg* @param <T>* @return*  类上的泛型是对象的静态的只能自己定义泛型*/public  static <T> ServerResponse<T> createByErrorMessage(String errormsg){//返回值是ServerResponse  实例化的每個返回值都是構造方法。 所以可以return new ServerResponse<T>(ResponseCode.ERROR.getCode(),errormsg);}/****  参数错误   需要登录,code做成变量,*  参数错误的话,需要暴露出来* @param errormsg* @param <T>* @return*/public  static <T> ServerResponse<T> createByErrorCodeMessage(int errorcode,String errormsg){return new ServerResponse<T>(errorcode,errormsg);}}

Java构造方法的作用相关推荐

  1. Java构造方法的作用是什么? 需要理解的重点有哪些?

    Java构造方法的作用和重点,需要理解的重点有哪些? 构造方法的作用: 即给重要属性赋初始值 . 构造方法本身并不神秘,通常它只是去完成一些初始化的工作.构造方法本身并不能去创建出一个对象,真正创建对 ...

  2. Java高级面试题!java构造方法的作用和特点

    1. Redis面试专题 绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.这里以面试题的形式 ...

  3. Java 构造方法及作用

    构造函数是一种特殊的方法,普通方法是用来描述某个动作的,构造方法是用来创建对象的. 1.作用:创建对象. 2.创建规则:方法名必须与类名一致,不需要定义返回值类型. 构造函数可分为有参构造和无参构造, ...

  4. java set的作用,Java的自学之路-构造方法 的作用以及与set方法的区别

    在java中,我们创建一个类时需要对类中的成员变量进行私有化,private..这样可以提高代码的安全性,那么在new 一个对象时,我们就不能对类中的成员变量直接赋值,此时可以在类中写一个 方法,这个 ...

  5. java构造方法是什么_java中什么叫构造方法,作用是什么?

    在java学习中大家经常遇到一个词叫做构造方法,对于新学习的同学经常不知道这是什么意思,当然学习过的同学就不会再问了,今天我就来跟大家说一说Java中的构造方法,首先构造方法的定义为:一个在创建对象时 ...

  6. 39.在Java中定义一个不做事且没有参数的构造方法的作用?

    1 在Java中定义一个不做事且没有参数的构造方法的作用 Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会 调用父类中"没有参数的构造方法&quo ...

  7. JAVA构造方法作用

    JAVA构造方法作用 1.使用new+构造方法,创建一个新的对象. 2.构造方法是定义在Java类中的一个用来初始化对象的方法. 3.构造方法与类名相同时是没有返回值的. 4.当没有指定构造方法时,系 ...

  8. java 构造方法的理解及作用

    构造方法是什么? 通俗易懂的说,构造方法就是项目中的实体类里面有参构造和无参构造 //有参构造public Billing(String msisdn, String serviceid, Strin ...

  9. 【Java学习笔记之一】java关键字及作用

    Java关键字及其作用 一. 总览: 1 访问控制 2 private protected public 3 4 类,方法和变量修饰符 5 abstract class extends final i ...

最新文章

  1. 学学这个垃圾×××网站怎么埋头赚大钱的!
  2. App开发流程之右滑返回手势功能续
  3. Android BCM4330 蓝牙BT驱动调试记录
  4. 判断ABAP software component是否可修改及可extend的API
  5. 计算机dos通讯,PC双机通信DOS
  6. 【图像重建指标 Metrics】均方误差RMSE及平均绝对误差MAE的定义和区别
  7. Team Foundation Server XXX 不存在,或者此时不可访问:解决方案
  8. 【转】IE6 浏览器常见兼容问题 大汇总(23个)
  9. matlab-读取文件
  10. 计算机二级java难吗_计算机二级上机-计算机二级难吗?二级高级语言:分笔试和上机考试笔试90分钟, 爱问知识人...
  11. RBF(径向基函数)神经网络
  12. Linux 卸载及删除磁盘分区
  13. U盘文件或目录损坏且无法读取修复方法?
  14. linux下反汇编命令,Linux下反汇编指定的函数
  15. 计算机高级语言程序的流程控制结构,汇编语言(四) - 程序结构
  16. luogu 2411 白银莲花池 luogu 1606 Lilypad Pond
  17. 如何申请微信号测试账号,进行微信开发
  18. UC浏览器下载的视频有k0或key.key或者0.key文件 破解加密将零散的视频合并一个mp4
  19. 微信h5支付添加域名时报错,“h5支付域名需要提供完整的支付路径“
  20. 使用PageInfo分页工具类

热门文章

  1. 传统汽车应用域控制器与主干网技术路线探讨
  2. springcloud之Feign超时问题(Read timed out executing POST http://***)
  3. [Android]能提高下载 android SDK 的一种方法
  4. 江苏省计算机考试准考证号忘了怎么办
  5. 《中文新闻信息分类标准》编制原则
  6. React 生命周期 钩子函数
  7. Java小游戏之Swing框架实现飞机大战(附源码 超详细必看)
  8. iPhone照片上传到iCloud需要多久,一直卡住怎么办?
  9. Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes
  10. Ubuntu 16.04 + Kinect for Xbox one(v2)驱动安装