构造方法

记录BigInteger的两个构造方法

谁都会走 提交于 2019-12-09 18:26:09
记录BigInteger的两个构造方法 构造方法: BigInteger​(byte[] val) 先说一下此构造方法是怎么得到结果的: 打印结果可以得出结论: BigInteger 中 toString(进制)方法 构造方法: BigInteger​(int signum, byte[] magnitude) 先说一下此构造方法是怎么得到结果的: --------------------------------------------------------------------------------------------------------------------------------------- 如果着急,可直接拉到最后看结论。如果结论看不懂,可以从头慢慢看起,也查阅别人的相关文档 --------------- 以下全为个人理解,知识有限,理解可能有错,谨慎借鉴 ------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------- 构造方法: BigInteger​(byte

Java基础——02(面向对象封装)

妖精的绣舞 提交于 2019-12-09 13:32:07
1.面向对象 面向对象思想是一种程序设计思想,这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。 区别: 面向过程:强调步骤。 面向对象:强调对象,这里的对象就是洗衣机。 2.对象内存图 1.一个对象,调用一个方法内存图 2.两个对象,调用同一方法内存图 3.一个引用,作为参数传递到方法中内存图 3.成员变量和局部变量区别 在类中的位置不同 (重点) 成员变量:类中,方法外 局部变量:方法中或者方法声明上 ( 形式参数 ) 作用范围不一样(重点) 成员变量:类中 局部变量:方法中 初始化值的不同(重点) 成员变量:有默认值 局部变量:没有默认值。必须先定义,赋值,最后使用 在内存中的位置不同 了解 成员变量:堆内存 局部变量:栈内存 生命周期不同 了解 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 成员变量的默认值: 4.封装 概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障

Spring中属性注入的几种方式以及复杂属性的注入

丶灬走出姿态 提交于 2019-12-09 02:34:45
在Spring框架中,属性的注入我们有多种方式,我们可以通过构造方法注入,可以通过set方法注入,也可以通过p名称空间注入,方式多种多样,对于复杂的数据类型比如对象、数组、List集合、map集合、Properties等,我们也都有相应的注入方式。 OK,接下来我们就来看看这么多不同的注入吧! 三种属性注入方式 构造方法注入 构造方法注入和p名称空间注入这两种方式我们在开发中用的并不算多,但是我们还是有必要先来看看构造方法如何注入。 假设我有一个User4,如下: public class User4 { private String username; public User4 (String username) { this .username = username; } @Override public String toString () { return "User4{" + "username='" + username + '\'' + '}' ; } } User4中有一个变量叫做username,我希望通过构造方法给它注入值,那我在User4中提供相应的构造方法即可,然后在Spring的配置文件中做如下配置即可: < bean id = "user4" class = "org.sang.User4" > < constructor-arg name =

Spring常用的三种注入方式

孤街浪徒 提交于 2019-12-09 02:33:45
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。 构造方法注入 先简单了解一下测试项目的结构,用maven构建的,四个包: entity:存储实体,里面只有一个User类 dao:数据访问,一个接口,两个实现类 service:服务层,一个接口,一个实现类,实现类依赖于IUserDao test:测试包 在spring的配置文件中注册UserService,将UserDaoJdbc通过constructor-arg标签注入到UserService的 某个 有参数的构造方法 <!-- 注册userService --> < bean id = " userService " class = " com.lyu.spring.service.impl.UserService " > < constructor-arg ref = " userDaoJdbc " > </ constructor-arg > </ bean > <!-- 注册jdbc实现的dao --> < bean id = " userDaoJdbc " class = " com.lyu.spring.dao.impl.UserDaoJdbc " > </ bean >

ASM核心API-方法

巧了我就是萌 提交于 2019-12-08 09:57:16
AMS4使用指南 实战java虚拟机 方法结构-示例 类文件如下: public class Bean { private int f; public int getF () { return f; } public void setF ( int f) { this .f = f; } } 使用 javap -verbose xx/xx/Bean ,查看字节码指令,观察方法区: 构造方法 如果程序没有显示的定义构造函、器, 编译器会自动生成一个默认的构造器 Bean(){super();} 0 : aload_0 #this 1 : invokespecial #1 // Method java/lang/Object."<init>":()V 4 : return getF()方法 Xreturn, ireturn表示int, 如果是引用类型为areturn ,void则为return; 0 : aload_0 1 : getfield #2 // Field f:I 4 : ireturn ###ireturn == return int ; setF()方法 0 : aload_0 #### this 1 : iload_1 ### 入参 f; 2 : putfield #2 // Field f:I 5 : return ###return void 抛出异常

super与this用法

佐手、 提交于 2019-12-07 17:53:29
super注意点:   1、当super调用父类的构造方法,必须在构造方法的第一个; 2、super必须只能出现在子类的方法或者构造方法中; 3、super和this不能同时调用构造方法; 4、super可调用父类的属性和方法,不包括private私有属性和方法 与this的区别: 1、代表对象不同。this:本身调用者调用这个对象(谁调用就是谁);super:代表父类对象的应用。 2、this没有继承也能使用;super只能在继承条件下使用 3、this() :默认调用的是本类的构造; super()调用的是父类的构造。 实例; public class Person{   protected String name="BBQ";   public Person(){ //无参构造方法     Syste.out.println("person");   }  public Person(String name){ //有参构造方法    this.name=name;   } } public class Student extend Person{   public Student(){  //在子类无参,默认调用父类的无参   // 这里会省略一句:super();,会先执行父类的无参后再执行下面内容     System.out.println("student");  

JavaWeb_(Spring框架)注解配置

北城以北 提交于 2019-12-07 17:13:27
Spring注解配置   a)导包和约束:基本包、aop包+context约束;    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-- 注解开发 --> <!-- 开启组件扫描 base-package 扫描该包下以及子包的所有注解 --> <context:component-scan base-package="com

单例设计模式

吃可爱长大的小学妹 提交于 2019-12-07 09:53:54
对所有的Java开发者而言,所有项目中最为常见的三个设计模式:工厂设计模式、代理设计模式、单例设计模式。 单例设计模式: 如果一个类中定义有普通方法,那么这些普通方法一定要通过本类的实例化对象你才可以调用。 传统调用: class Single{ public void print(){ System.out.println("单身"); }}class TestDemo{ public static void main(String arg[]){ Single single = new Single(); single.print(); }}运行结果:单身 在本程序中Single是一个普通的类,由于本类并没有进行任何构造方法的定义,所以这个类中会自动生成一个无参的、什么都不做的的构造方法,正是因为如此,我们可以在外部进行无参构造的调用。 但现在相对Single 类做一个修改: class Single{ private Single(){} public void print(){ System.out.println("单身"); }}class TestDemo{ public static void main(String arg[]){ Single single= null; single = new Single(); single.print(); }} 运行结果

JavaSE——(五):封装、继承、多态

雨燕双飞 提交于 2019-12-07 08:42:30
目录 一、封装 1.1、为什么需要封装 1.2、封装属性 1.3、自动封装属性 1.3.1、创建单个 1.3.2、批量创建 二、继承 2.1、 Java继承概要 2.2、为什么需要继承 2.3、实现继承 2.2. Java继承的特征 2.2.1、传递性 2.2.2、单根性 三、构造方法 3.1、构造方法概要 3.2、带参数的构造方法 四、多态 4.1、LSP(里氏代换原则) 4.2、重写(override) 4.3、多态实现 五、示例与视频下载 六、面试题 java面向对象的三大特性是:封装、继承与多态,是面向对象编程的核心。 一、封装 简单说封装就是将同一类事物的特性与功能包装在一起,对外暴露调用的接口。 封装:封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户无需知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。 封装的好处: 1) 实现了专业的分工 2) 良好的封装能够减少耦合 3) 类内部的结构能够自由修改 4) 可以对成员进行更精确的控制 5) 隐藏信息,实现细节 1.1、为什么需要封装 定义一个学生类,在类中定义学生身高。 Student类: package com.zhangguo.c41; /**学生类*/

关于抽象类中构造函数的一些学习

早过忘川 提交于 2019-12-07 06:59:16
子类在创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。 这个地方我说的是初始化方法,而不是构造方法,因为构造方法是相对于java源程序而言,而编译后的class文件是初始化方法即" <init> "方法(红色部分为方法名),初始化方法是由java源程序的三个部分组成的,一个部分是成员字段后的直接的初始化语句,例如 private int i=0;private Date date=new Date(); 等等,第二个部分是由初始化块组成,例如: public class Test{ private int i=0;//初始化第一部分 //以下大括号内为初始化第二部分 { this.i=4; \\do something...... } } 第三个部分就是java源代码中的构造方法中的代码,java源代码中有几个构造方法,那么class文件中就有几个初始化方法,编译器会把第一部分与第二部分分别复制到每个初始化方法的前端,然后把初始化方法对应参数的构造方法的代码复制到相应初始化方法中( 这里说的复制其实应该说是编译,不过为了让你更好理解所以如此说 ). 那么说初始化方法如何追述其父类的,这也关系到初始化方法的结构