构造函数

list容器

倖福魔咒の 提交于 2020-01-31 11:27:51
导航: 1.list容器的基本概念(功能,组成,优缺点) 2.list 容器的构造函数 3.list 容器的赋值操作 4.list 容器的大小容量 5.list 容器的插入与删除 6.list 容器数据存取 7.list 容器反转和排序 ——————————————————————————————————— 1.list容器的基本概念 功能 :将数据进行链式存储。 链表 :是一种物理存储单元非连续的存储结构,数据元素中的逻辑顺序通过指针链表实现。 链表组成 :一系列的结点 结点组成 :一个是存储数据元素的数据域,另一个是存储下一个结点的地址 STL中链表是一个双向循环列表 优点 :对任意位置可以快速添加,删除元素( 动态分配,不会造成浪费 )。 缺点 :遍历没有数组遍历的快,并且占用空间比较大。 链表 中存储方式不是连续内存空间,list中迭代器只支持前移后移,属于 双向迭代器 插入删除 元素不影响迭代器失效, vector不成立 (动态分配内存对导致内存改变从而失效) ——————————————————————————————————— 2.list 容器的构造函数 list< T >v; //默认构造函数 list(v.begin(),v.end()); //将[ begin(),end())中的拷贝到本身 list(n,elem); //构造函数将n个elem数据拷贝本身

Java引用解析

本小妞迷上赌 提交于 2020-01-31 06:51:36
本文对源码的解析基于JDK13。 1. Java对象的引用 1.1 引用的概念   谈引用之前,我们先看一下指针,在可以操作指针的语言中,指针代表的是内存的地址,通过操作指针我们可以直接操作内存。Java语言不直接操作指针,即不直接操作内存(但是我们可以通过 Unsafe 类间接操作内存)。我们所操作的是引用,有了一个对象的引用,我们就可以操作这个对象,而对象分配在内存中,对对象的修改实际上是对内存的读写。所以我们理解的引用本质是别名,实际上引用存储的数值是一块内存的地址。在Java中,如果一块内存存放着另一块内存的地址,我们可以称这块内存为引用。所以 Object o = new Object() 中 o 本质上是我们刚new出来的对象在内存中地址,无论这个对象是普通对象还是数组对象。 1.2 Reference类解析   首先,万物皆对象。谈 Reference 类前,我们先类比 Class 类,我们知道 Class 类是对类对象的抽象, Class 类的实例表示正在运行的类和接口。 Reference 类是对引用对象的抽象,与 Class 类不同的是, Reference 类是抽象类,并不能直接实例化。 Reference 类是与垃圾回收紧密相关的,该类提供了部分接口以便更好的帮助JVM进行GC。它的子类可被实例化

小程序图片上传

孤街浪徒 提交于 2020-01-31 06:47:03
最近用小程序做上传,发现只能单图上传,刚开始很是头疼,由于图片和内容提交是分开的两个不同的接口,图片不是必填项,刚开始很是头疼,请教了一下别人,emmmmm,解决了(uni-app) 主要用到的是es6中的promise,一种异步的执行,Promise 对象是由关键字 new 及其构造函数来创建的。 有兴趣的同学可以直接去阮一峰大佬的网站学习: es6学习网站 直接上代码: 在这之前要先选择图片,直接用uni.chooseImage这个api就行, 在成功的回调里面循环选择的图片数组 success: (res) => { res.tempFilePaths.forEach((item,index) => { this.photoArr = res.tempFiles var photoPath = this.photoArr this.imgArr = res.tempFilePaths }) } 1、首先是图片上传的代码,我把他封装成了一个方法,最后直接调用就可以了 upImg(imgSrc){//上傳圖片方法封裝 console.log(imgSrc) return new Promise((resolve,reject) => { uni.uploadFile({ url:this.serverUrl + ‘image’, filePath:imgSrc, name:

Java构造函数

家住魔仙堡 提交于 2020-01-31 03:38:31
Java构造函数 -每个Java类都必须有构造函数,构造函数的名称必须和类名一样,且没有返回值 -一个类可以有多个构造函数,只要形参列表不相同即可。 -在new对象的时候,根据实参的不同, 自动挑选相应的构造函数。如果实参形参匹配不上,将会报错 -Java有构造函数是制造对象的过程,但是没有析构函数是清除对象的过程 -当变量被创建时,变量将占据内存;当变量消亡时,系统将回收内存 -如果没有显式定义构造函数,Java编译器自动为该类产生一个 空的无形参构造函数 。如果已经有了显式的有参构造函数,编译器就不会越俎代庖了。每个子类的构造函数的第一句话,都默认调用父类的无参数构造函数super(),除非子类的构造函数第一句话是super,而且super语句必须放在第一条,不会出现连续两条super语句 class MyPairNumber { int m ; int n ; public MyPairNumber ( ) { m = 0 ; n = 0 ; } public MyPairNumber ( int a ) { m = a ; n = 0 ; } public MyPairNumber ( int a , int b ) { m = a ; n = b ; } } public class ConstructorTest { public static void main (

复合数据

不打扰是莪最后的温柔 提交于 2020-01-31 01:13:54
复合数据 本文基于 SICP 2.4 - 2.6,介绍三种另类的数据存储结构。 文章目录 复合数据 函数工厂 构造函数 左提取 右提取 用例 因式分解 代码 用例 Church 计数 零的定义 加1 加法 函数工厂 构造函数 (define (cons x y) (lambda (m) (m x y))) 构造函数返回的是一个“装饰器”,它完成如下映射: f ↦ f ( x , y ) f\mapsto f(x,y) f ↦ f ( x , y ) 实际上是把数据存在了函数闭包里,数据提取函数只要传入返回相应参数的函数就可以了。 左提取 (define (car z) (z (lambda (p q) p))) 右提取 (define (cdr z) (z (lambda (p q) q))) 用例 > (car (cons 109 77)) 109 因式分解 可以建立一个数到序对的双射吗?至少对于正整数是可以的: ( a , b ) ↔ 2 a 3 b (a,b)\leftrightarrow 2^a3^b ( a , b ) ↔ 2 a 3 b 质因数分解的结果是唯一的,可以用来实现 2 a 3 b ↦ ( a , b ) 2^a3^b\mapsto (a,b) 2 a 3 b ↦ ( a , b ) 。 代码 使用 sumpy 数论库: from sympy .

混江龙づ霸主 提交于 2020-01-30 22:10:23
类的组成 当类的成员没有初始化的时候,都会给默认变量 定义类的例子 //访问限定词 关键词 类名 public class ClassName { //属性(变量,字段) //方法 } 一 变量 格式:修饰符+变量名(定义并初始化值),如果是final 关键字修饰,则该变量是一个常量,常量不可以重新赋值 二 方法 格式:修饰符+返回值+方法名(参数){执行体|方法体} 三 修饰词 3.1 public 简称公共的,被修饰的类,属性以及方法不仅可以被跨类访问,而且也许跨包访问 3.2 private 简称私有的,被修饰的类,属性以及方法 只能被该类的对象访问(同类不同对象可以访问其私有变量) ,其子类不能访问,更不能跨包访问。 3.3 protect 介于 public 和 private 之间的一种访问修饰符,被其修饰的类,属性以及方法只能被本身的方法以及子类访问, 即使子类在不同的包中也可以访问,并且本包下的其他类也可以访问 3.4 default 只能在本包下被访问,无论是类,接口等。 构造函数 格式: 修饰符+类名(){} 注意: 没有返回值,也不能用static静态修饰。如果一个我们没有给他定义构造函数时系统会为其创建一个无参的构造函数。 作用: 通过该构造函数来创建这个类的实例对象。初始化这个类的信息。也可以通过构造函数传参。 代码块 静态代码块 public class

Java -- this和super的使用注意

和自甴很熟 提交于 2020-01-30 22:01:46
Java 中this()和super()的使用注意: 1)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。 2)super()和this()类似, 区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。 3)super()和this()均需放在构造方法内第一行。 4)尽管可以用this调用一个构造器,但却不能调用两个。 5)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。 6)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。 7)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。 来源: CSDN 作者: asdx1020 链接: https://blog.csdn.net/asdx1020/article/details/104117628

275 原型与原型链:显式原型prototype ,隐式原型__proto__,隐式原型链,给原型对象添加属性(一般都是方法)

こ雲淡風輕ζ 提交于 2020-01-30 16:27:48
1、所有函数都有一个特别的属性 prototype : 显式原型属性 2、函数的prototype属性(图) 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象) 【即Object实例对象 {}】 原型对象中有一个属性constructor, 它指向函数对象 【相互引用】 3、给原型对象添加属性(一般都是方法) 作用: 函数的所有实例对象自动拥有原型中的属性(方法) 4、所有实例对象都有一个特别的属性 __proto__ : 隐式原型属性 5、显式原型与隐式原型的关系 函数的prototype: 定义函数时,被自动赋值, 值默认为{}, 即用为原型对象 实例对象的__proto__: 在创建实例对象时,被自动添加, 并赋值为构造函数的prototype值 原型对象,即为当前实例对象的父对象 6、原型链 【隐式原型链】 所有的实例对象都有__proto__属性, 它指向的就是原型对象 这样通过__proto__属性就形成了一个链的结构 ----> 原型链 当查找对象内部的属性/方法时, js引擎自动沿着这个原型链查找,找到返回,如果最终没找到, 返回undefined 作用: 查找对象的属性(方法) 【作用域:查找变量。】 当给对象属性赋值时,不会使用原型链, 而只是在当前对象中进行操作 Object的原型对象是原型链尽头 【 Object

Java设计模式-单例模式的7种写法详解(上)

余生颓废 提交于 2020-01-30 10:11:31
Java设计模式-单例模式的7种写法详解(上) 参照B站尚硅谷官方视频资源:https://www.bilibili.com/video/av57936239?p=33 文章目录 Java设计模式-单例模式的7种写法详解(上) 0.前言 1.饿汉式(静态常量)实现单例模式 1.1 实现步骤 1.2 具体编码 1.3 测试验证 1.4 阶段小结 2.饿汉式(静态代码块)实现单例模式 2.1 实现步骤 2.2 具体编码 2.3 测试验证 2.4 阶段小结 3.懒汉式(线程不安全)实现单例模式 3.1实现步骤 3.2具体编码 3.3测试验证 3.4阶段小结 4.懒汉式(线程安全,同步方法)实现单例模式 4.1实现步骤 4.2具体编码 4.3测试验证 4.4阶段小结 5.一种错误的写法:懒汉式(同步代码块) 5.1实现步骤 5.2具体编码 5.3测试验证 5.4阶段小结 0.前言 单例模式: 确保此类只有一个实例,并提供获取实例的方法。 作用: 可以保持在一个应用程序生命周期内,所引用对象的实例均为同一个 使用场景:例如工具类,使用了单例模式后,可避免重复创建实例造成的资源浪费。 单例模式分为以下7种: 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全,同步方法) 双重检查 静态内部类 枚举 也可说是5种,只是懒汉饿汉各自又有2种不同的实现方式。

201521123036 《Java程序设计》第3周学习总结

折月煮酒 提交于 2020-01-30 06:03:08
本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识组织起来。 书面作业 Q1:代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; public static void main(String[] args) { geti(); Test1.getj(); } public static void geti() { System.out.println(i); } public static void getj() { System.out.println(j); } }  以上代码可否编译通过?哪里会出错?为什么?尝试改正?  如果创建3个Test1对象,有内存中有几个i,几个j? answer:编译无法通过。System.out.println(i)会出错。static是属于类的,非Static是属于对象,每个对象的值可能都不一样。geti是静态方法不能直接调用未经static定义的变量i。 改正如下: 如果创建3个Test1对象,内存中有3个i,1个j。j被static修饰后,在编译时由内存分配一块内存空间,该类的所有对象都会共享这块内存空间。 Q2:构造函数有什么用?其编写格式是什么?如果一个类不写构造函数