构造方法

Lombok简化Java代码

淺唱寂寞╮ 提交于 2019-11-28 05:09:08
导包:import lombok.Data; Lombok简化 Java 代码: 在Lombok中,生成构造方法的annotation一共有三个: @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsContructor。 使用这三个annotation来完成项目中对于不同构造方法的需求。 @NoArgsConstructor : 生成一个无参数的构造方法,这个annotation在与其他的annotation配合起来使用的时候更加能凸显出他的重要性, 例如在使用hibernate这种框架的时候,如果有一个有参数的构造方法的时候,NoArgsConstructor会展示出他的作用。 @RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量 的构造方法。生成的构造方法是private,如何想要对外提供使用可以使用staticName选项生成一个static方法。 @AllArgsContructor: ?会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验 下面介绍几个我常用的 lombok 注解: @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual

Spring源码解读之执行流程

风格不统一 提交于 2019-11-28 05:03:17
Spring源码解读之执行流程 1、加载resources下面的context.xml配置文件 public static void main(String[] args){ ClassPathXmlApplicationContext application = new ClassPathXmlApplicationContext("classpath:context.xml"); Test test = application.getBean(Test.class); } 2、context.xml的配置内容为: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id = "test" class="com.reus.Test" /> </beans> 3、执行流程为

Java 继承中构造方法的使用

こ雲淡風輕ζ 提交于 2019-11-28 05:02:58
/* * 继承中构造方法的使用 * * * * 1.当一个子类中只有一个带参数的构造方法,只能使用带参数的,不能使用无参的.如果想使用,必须手动建立无参的构造方法 * 2.当父类中只有带参数的构造方法,子类的构造方法中就必须在第一行手动调用父类带参数的构造方法(super(参数)) * 3.当我们创建构造方法的时候,如果自己不写super(),系统会自动调用 * 原因:父类中也有属性要进行初始化,而对象的属性必须由自己的构造方法进行初始化,所以必须调用super(),所以每个构造方法中都默认有一个super() * * 为什么要将super放在方法的第一行? * 答:在子类的构造方法中有可能用到父类的属性,而属性在使用之前必须先进行初始化,否则无法使用. * * 总之:在继承体系中,作为父类最好的办法就是将无参构造方法和有参构造方法都写了. * * 注意:每次创建类时必须有的内容:1属性 2.get,set 3.有参无参构造方法 4.toString方法 * */ public class Demo18 { public static void main(String[] args) { } } class Fu{ String name; public Fu(String name) { } public Object show(int a) { return new Bird(

Java final

怎甘沉沦 提交于 2019-11-28 05:02:54
/* * final:是一个关键字,最后的,最终的.被final修饰的内容是不能再被改变的. * * 可以修饰的内容: * 1.类:final修饰的类不能有子类 * 2.成员变量:变量是一个终值,不能再被改变.所以在定义时必须先手动给一个值. * 3.局部变量:被final修饰的局部变量是一个终值,不能再被改变 * 4.方法:final修饰的方法不允许重写 * 5.空白final----了解 */ public class Demo1 { public static void main(String[] args) { Ainmal ainmal = new Ainmal(); } } class Ainmal{ //这里的红色不是初始化,是赋值 //当构造方法执行的时候,会立刻对属性进行初始化,引用类型赋值成null.接下来才会去读取红色这个值并赋值给color String color = "红色"; final String name = "冰冰" ;//2.成员变量:变量是一个终值,不能再被改变.所以在定义时必须先手动给一个值. public Ainmal() { //对自己的属性进行初始化 super();//调用父类的构造方法 //做自己的事情 System.out.println("自己的功能"); //因为name已经是一个final的,不能再被改变. //name

多态、抽象、接口、final

吃可爱长大的小学妹 提交于 2019-11-28 01:44:06
1:final关键字 ​ (1)是最终的意思,可以修饰类,方法,变量。 (2)特点: A:它修饰的类,不能被继承。 B:它修饰的方法,不能被重写。 C:它修饰的变量,是一个常量。 A:局部变量 a:基本类型 值不能发生改变 b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的 B:初始化时机 a:只能初始化一次。 b:在构造方法完毕前。(非静态的常量) c:常见的给值 定义的时候。(推荐) final int num = 30; 构造方法中。 ​ 2:多态 ​(1)同一个对象在不同时刻体现出来的不同状态。 (2)多态的前提: A:有继承或者实现关系。 B:有方法重写。 C:有父类或者父接口引用指向子类对象。 多态的分类: a:具体类多态 class Fu {} class Zi extends Fu {} Fu f = new Zi(); b:抽象类多态 abstract class Fu {} class Zi extends Fu {} Fu f = new Zi(); c:接口多态 interface Fu {} class Zi implements Fu {} Fu f = new Zi(); (3)多态中的成员访问特点 A:成员变量 编译看左边,运行看左边 B:构造方法 子类的构造都会默认访问父类构造 C:成员方法 编译看左边,运行看右边 D:静态方法

详述反射中的构造方法

笑着哭i 提交于 2019-11-28 00:48:54
什么是反射? Java 反射( Reflection )是一种新的 操作 类中成员变量 、 构造方法 和 普通方法 的机制 。 为了实现对成员变量、构造方法和普通方法的操作,我们需要借助 Java 自身提供的 java.lang 包下的 Class 类和 java.lang.reflect 包下的反射 API 。 在上篇博客( 如何获取Class类对象 )中,已经介绍如何获取Class类对象,而Class类的实例化对象其实就是反射机制的实现入口,本篇博客将会详细介绍反射中的构造方法。 现有学生类如下(用于本篇博客的实例证明): public class Student { String name; Integer id; public Student() { } public Student(String name) { this.name=name; } private Student(Integer id) {//Integer为int类型的包装类 this.id=id; } public void sleep() { System.out.println(name+" go to sleep "); } public void say() { System.out.println("学号为:"+id); } } 使用反射获取构造方法的实例对象

ADO.NET 六(DataRow DataColumn)

喜你入骨 提交于 2019-11-28 00:48:51
  已经介绍了使用 SqlCommand 对象中的 ExecuteNonQuery 方法执行非查询 SQL 语句来实现对数据表的更新操作,使用 DataSet 对象也能实现相同的功能, 并且能节省数据访问时间。   每个 DataSet 都是由多个 DataTable 构成的,更新 DataSet 中的数据实际上是通过更新 DataTable 来实现的。   每个 DataTable 对象都是由行 (DataRow) 和列 (DataColumn) 构成的,下面分别介绍 DataRow 类和 DataColumn 类的使用。 1) DataRow 类   DataRow 类代表数据表中的行,并允许通过该类直接对数据表进行添加、修改、删除行的操作。   DataRow 类中常用的属性和方法如下表所示。 属性或方法 说明 Table 属性,设置 DataRow 对象所创建 DataTable 的名称 RowState 属性,获取当前行的状态 HasErrors 属性,获取当前行是否存在错误 AcceptChanges() 方法,更新 DataTable 中的值 RejectChanges() 方法,撤销对 DataTable 中的值的更新 Delete() 方法,标记当前的行被删除,并在执行 AcceptChanges 方法后更新数据表   在 DataRow 类中没有提供构造方法

ADO.NET 二(Connection)

六眼飞鱼酱① 提交于 2019-11-27 23:57:56
   C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步。   接下来了解一下 Connection 类中的常用属性和方法,以及如何连接 SQL Server 数据库。   Connection 类概述   Connection 类根据要访问的数据和访问方式不同,使用的命名空间也不同,类名也稍有区别,在这里我们使用的是 SqlConnection 类,以及微软提供的MSSQLSERVER数据库。   SqlConnection 类中提供的常用属性和方法如下表所示。 属性或方法 说明 SqlConnection() 无参构造方法 SqlConnection(string connectionstring) 带参数的构造方法,数据库连接字符串作为参数 Connectionstring 属性,获取或设置数据库的连接串 State 属性,获取当前数据库的状态,由枚举类型 Connectionstate 为其提供值 ConnectionTimeout 属性,获取在尝试连接时终止尝试并生成错误之前所等待的时间 DataSource 属性,获取要连接的 SQL Server 的实例名 Open() 方法,打开一个数据库连接 Close() 方法,关闭数据库连接 BeginTransaction() 方法,开始一个数据库事务

Java基础(basis)-----关键字this和super的作用

╄→гoц情女王★ 提交于 2019-11-27 22:30:05
1.关键字this 可以用来修饰属性、方法、构造器;this理解为当前对象或当前正在创建的对象 局部变量与成员变量同名,成员变量被屏蔽,用"this.成员变量"的方式访问成员变量 可以在构造器中通过“this(形参)”的方式显示的调用本类中其它重载的指定的构造器, 在构造器内部必须声明在首行 package com.keyword; /** * this关键字 * * @author yyx 2019年8月19日 */ public class ThisDemo { private String stuName; private Integer stuAge; private String stuSex; public ThisDemo() { super(); System.out.println("无参构造函数"); this.sayWord(); //this调用方法 } public ThisDemo(String stuName, Integer stuAge) { this(); // 调用重载的构造方法 this.stuName = stuName; this.stuAge = stuAge; System.out.println("两个参数的构造函数"); } public ThisDemo(String stuName, Integer stuAge,

【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术

不问归期 提交于 2019-11-27 21:30:32
【摘要】 学习经典代码中的prototype加工 示例代码托管在: http://www.github.com/dashnowords/blogs 好的代码都差不多,烂的代码却各有各的烂法。 一. 概述 原型链是 javascript 非常重要的基础知识。最近在阅读 node.js ,发现许多代码乍一看会觉得很费解,但细细品味之后会觉得非常优雅,对于代码细节的把控和性能的考量让人觉得赞叹。不得不说看大师级的作品真的是一种享受。本篇中我将以 cluster 模块中子进程管理对象 Worker类 的实现为例,带你一起看看堪称艺术的代码是如何像手术一样操作原型链,同时理解本节的知识点对于下一篇 cluster 模块的学习压力。 二. 原型链基础知识 javascript中存在两种原型概念——内置 [[prototype]] 属性指向的对象和 prototype 原型对象, prototype 原型对象上挂载着实例上的公共方法和属性, [[prototype]] 属性可以通过 __proto__ 属性来访问(虽然暴露了这个属性但不推荐使用,平时更多使用 Object.getPrototypeOf( ) 方法来获取,也可以通过 Object.setPrototypeOf( ) 来修改,本文中为了书写方便继续用 __proto__ ),所一个实例的 [[prototype]]