C++自学笔记 Composition:对象组合】的更多相关文章

继承是实现软件重用的一种方式. 在C++中拥有另一种实现软件重用的方式----- Composition:对象组合 用已经有的对象制造新的对象 (设计一个类的时候它的成员变量可以是另一个类的对象) 对象组合的两种方式: (内存模型复杂度:访问对象时既可以通过对象本身访问,也可以通过指针访问) Fully (全部地.充足地) inclusion By reference (通过引用)inclusion Fully:组合的对象可以是我的对象的一部分 (成员变量是对象本身) By reference…
jQuery:自学笔记(4)——事件与事件对象 jQuery中的事件 什么是事件 所谓事件,就是被对象识别的操作,即操作对象队环境变化的感知和反应,例如单击按钮或者敲击键盘上的按键. 所谓事件流,是指HTML文档使用的是DOM模型,而该模型是从上到下一级一级的结构,因此就会触发一连串的对象.例如单击HTML页面上的某个按钮时,不仅会触发按钮的单击事件,还会触发安装所属容器div的单击事件,同时还会触发父级别容器的单击事件. jQuery中支持的事件和事件类型 方法 描述 bind() 向元素添加…
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵塞或者睡眠状态,实际不被投入执行,这些任务尽管位于内存,但是并不处于可运行状态. 多任务系统分为两种: 抢占式多任务:Linux提供了抢占式的多任务模式,由调度程序来决定什么时候停止一个进程的运行. 现代操作系统提供:动态时间片计算的方式:可配置的计算策略 非抢占式多任务:除非进程自己主动停止运行,否则会一直…
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 循环 6.使用dict和set 6.1 dict 6.2 set 7.函数的使用 7.1函数返回多个值,同时接受多个值 7.2函数参数的默认值 7.3可变参数的函数 7.4可变个数带参数名的入参 7.5参数类型组合 8.关于函数递归 9.python的高级特性 9.1切片 9.2遍历 9.3列表生…
JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口的实现类对象 4)类名作返回值类型 返回的是该类的一个对象 class StudentDemo{ public Student getStudent(){ return new Student()}//匿名对象,返回一个student类型 } //创建该类的对象并调用该对象的getStudent()…
JAVA自学笔记26 1.网络编程 1)用来实现网络互联的不同计算机上运行的程序可以进行数据交换 2)网络模型一般泛指 OSI:(Open System Interconnection)开放系统互联参考模型 TCP/IP参考模型 3)网络编程三要素 IP地址.端口.协议 ①IP地址:在TCP/IP协议中网络通信中的计算机的唯一标识号 java提供类InetAddress供使用. 为了方便用4个十进制数表示 网络号段+主机号段 IP分类: 见书 ipconfig–查看本机IP地址 ping ip地…
JAVA自学笔记27 1.类的加载 1)当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. ①加载:就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会为之建立一个Class对象. ②连接 验证:是否有正确的内部结构,并和其他类协调一致 准备:负责为类的静态成员分配内存,并设置默认初始化值 解析:将类的二进制数据中的符号应用为直接引用. 初始化:就是之间所说的初始化步骤 附初始化的时机: –创建类的实例…
TS 自学笔记(二)装饰器 本文写于 2020 年 9 月 15 日 上一篇 TS 文章已经是很久之前了.这次来讲一下 TS 的装饰器. 对于前端而言,装饰器是一个陌生的概念,但是对于 Java.C# 等语言来说装饰器这一概念并不陌生. 所谓装饰器,就是一种特殊的类型声明,它可以被附加到「属性」.「类声明」.「方法」.「方法参数」上. 他的好处就是可以编写元信息以内省代码.看不懂?没关系,继续往下看. 我知道,网上的很多文章都看的让人十分痛苦,但我觉得我的文章并不会这样,我会尽量由浅入深的 装饰…
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有内存映射的内存地址空间或执行线程等其他资源. 线程:是在进程中活动的对象.每个线程都有一个独立的程序计数器.进程栈和一组进程寄存器.内核调度的对象是线程而非进程.操作系统中进程提供两种虚拟机制:虚拟存储器和虚拟内存. 程序:本身并不是进程,进程是处于执行期的程序以及相关的资源的总称.不同的进程可以执行同一个程…
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一些资深的特殊功能 健壮性 在任何时候内核的任何地方都能调用printk()函数,只有在终端还未初始化的时候不能调用. 在中断上下文和进程上下文中被调用 在任何持有锁时被调用 在多处理器上同时被调用,并且不必使用锁. 解决办法是提供一个变体函数early _ printk(),但这种办法在某些硬件体系结构上无法…
以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在读取和设置数组的值时,要用方括号并提供相应值的基于0的数字索引: 2.2length属性 数组的项数保存在length属性中,这个属性始终返回0或者更大的值. 数组length属性不是只读的,通过设置这个属性,可以从数组的末尾移除项或者向数组中添加新项.看下面的例子: 三.转换方法  valueOf…
vue 自学笔记(一): 知识内容:  安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.html vue 自学笔记(二) 知识内容:实例的概念,属性和方法,页面如何绑定数据,声明周期函数,官方图解 https://www.cnblogs.com/baili-luoyun/p/10763551.html vue 自学笔记(三) 知识内容: 计算属性,侦听 https://www.cnblogs…
JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1","2","3","4","5","6","7","8","9","A","B","C&…
JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.name="cc"; obj.age=18; //添加方法 obj.eat=function(){...}; //调用 obj.eat(); ②自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象) 工程模式: 对象名 Instanceof 对象名 根据对象是否属于给定类 返回布尔值 f…
JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=getArratMax([1,4,2,6,8,2,5]); 关于说明: /** *函数的说明 *@param array参数为一数组//解释说明参数列表 *returns //解释说明返回值 * * / 当有人需要查看该函数的说明时,使用ctrl+左键点击函数名即可访问以上注释 //输入年月日,获取这个…
JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Document Object Model)文档对象模型 BOM(Browser Object Model)浏览器对象模型 3.js代码的位置: 执行:单击右上角浏览器图标.Alt+f2快捷键. –在html文件中的script的标签中书写js代码 –js代码可以在html的标签中内嵌 –在js文件中可…
JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法被重写 4)变量为常量,其值不可被改变 修饰引用类型时:引用类型的地址值不能变但其成员变量(堆内存的值)等是可以变的 5)初始化时机: 被final修饰的变量只能赋值一次 在构造方法完毕前修饰变量,避免其被构造方法改变(非静态的常量) 3.多态 1)某一个事物,在不同时刻表现出不同的状态 2)前提与…
JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维数组 n表示每个一维数组的元素个数 存储图解: eg:int[][]arr = new int[3][3]; 意义:定义了一个二维数组名为arr,这个二维数组有3个一维数组,名称是arr[0].arr[1].arr[2],每个数组有3个元素,可通过arr[m][n]来访问相应m+1.n+1元素 区分…
JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功能:给对象中的数据进行初始化 3)格式:方法名与类名相同,没有具体的返回值类型(包括void),没有具体的返回值 public 类名(){-;}; 4)注意事项:如果不提供构造方法,系统将给出默认的无参构造方法,若已给出,系统不再给出构造方法,可以被重载. 5)重载格式:可以有参数列表即可以在构造方…
JAVA自学笔记13 1.StringBuffer类 1)线程安全的可变字符序列 线程安全(即同步) 2)StringBuffer与String的区别:一个可变一个不可变 3)构造方法: ①public StringBuffer() 无参构造. StringBuffer ssd=new StringBuffer(); Systrm.out.println(ssd);//已被重写,由于没有内容而为空 Systrm.out.println(ssd.capacity());//默认为16 Systrm…
JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.itcast包下创建类.HelloWorld D:在HelloWorld下有一个方法.public static void main(String[] args) {} E:在main方法中有一个输出语句.System.out.println("你的名字"); 3:Eclipse空间的基本配…
JAVA自学笔记14 1.正则表达式 1)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.其实就是一种规则.有自己的特殊应用 2)组成规则: 规则字符在java.util.regex Pattern类中 常见组成规则: 字符:x(字符x).\(反斜线字符). \n(换行).\r(回车符) 字符类: [abc](a或b或c,简单类) [^abc](除了a/b/c以外的字符) [a-zA–Z](两头的字母也包括在内(范围)) [0-9](0到9的字符都包括) 预定义字符类: .(…
JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流,对应着键盘录入 4)成员方法 ①public boolean hasNextXxx() 判断是否还有下一个输入项,返回布尔类型.其中Xxx可以是Int/Double等数据类型,如果需要判断是否包含下一个字符串,则可省略Xxx public class ScannerDemo(){ public s…
JAVA自学笔记15 @例题1:共有5个学生,请把五个学生的信息存储到数组中,并遍历数组,并获取每个学生的信息 Students[] students=new Student[5]; Student s1=new Student("Jack"); Students[0]=s1;//数组里储存的是一个一个的对象 1.集合类 1)面向对象语言对事物都是以对象的形式,所以为了方便 对多个对象进行操作,java提供了集合类 2)数组虽然也可以存储对象,但长度必须是固定的,集合的长度是可变的.数…
JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素无序 System.out.println("map.put("cc","coco"));//null //替换键值,返回该键的上一个值,若键不存在,返回null System.out.println(map);//cc=coco,左边是键,右边是值 //ma…
JAVA自学笔记08 1.构造方法私有,外界就不能再创建对象 2.说明书的制作过程 1)写一个工具类,在同一文件夹下,测试类需要用到工具类,系统将自动编译工具类:工具类的成员方法一般是静态的,因此在测试类中可直接通过 工具类名.方法名(参数列表); 的方法来调用 2)加入文档注释 @ 文字(作者.版本) @ param / return 3)用工具解析文档注释:javadoc 格式:javadoc -d 目录名-author-version 工具类名.java 可创建未存在的目录 3.工具类配合…
JAVA自学笔记19 1.集合总结 Collection(单列集合) List(有序可重复) ArrayList:底层数据结构是数组 ,查询快,增删慢.线程不安全,效率高 Vector:底层数据结构是数组,查询快,增删慢.线程不安全,效率低 LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高 Set(无序唯一) HashSet:底层数据结构是哈希表,哈希表依赖两个方法:hashCode()和equals() 执行顺序:首先判断hashCode()值是否相同,是则继续执行…
JAVA自学笔记17 1.Map接口 1)概述 将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值.可以存储键值对的元素 2)与Collection接口的不同: ①Map是双列的(成对出现),Collection是单列的 ②Map的键是唯一的,值是可重复的.Collection的子体系Set是唯一的,List是可重复的 ③Map集合的数据结构针对键有效,与值无关:Collection集合的数据结构是针对元素有效 2.登录注册集合版 1)图解: 2) 3)代码:见视频17.0…
JAVA自学笔记20 1.递归: 1)方法定义中定义中调用方法本身的现象 2)要有出口,否则就是死递归 次数不能太多.否则内存将溢出 构造方法不能递归使用 //斐波那契数列:1,1,2,3,5,8,13,21.34 public int Fibonacci(int n){ if(n==1||n==2){return 1;} return Fibonacci(n-1)+Fibonacci(n-2) } @例题1:遍历目录下指定后缀名结尾的文件名称 private static void getAl…
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 String(byte[] bytes,String charsetName): 通过指定的字符集解码字节数组 byte[]getBytes(String charsetName) 使用指定的字符串编码为字节数组 String s="你好"; //编码String-byte[] byte…