p1

Day 24~26 类,面向对象,属性

穿精又带淫゛_ 提交于 2019-11-30 10:36:04
类:把一类事物的相同的特征和动作整合到一起就是类 对象:就是基于类而创建的一直具体的事物(具体存在的)也是特征和动作整合到一起 面向对象: 特征: 动作: 整合到一块 类,用”””类名+.”””取到 数据属性:即变量 函数属性:即函数 查看类的属性dir(类名) --或-开头为系统内置的类 类名.__dict__[ ]: 查看类的属性字典 实例化 p1=Chinese(‘name’,’18’,’female’) #立即触发函数def __init__(self,参数)运行 #相当于p1=Chinese.__init__(p1,name,age,gender) print(p1.__dict__) 类__init__(self,*args)__初始化函数不能用return函数,自动返回self,因为实例化自动return,会造成冲突,初始化函数用来帮类实例化出一个具体对象 def __init__(self,name,addr,type): self.name=name #实质是self.key=value 实例能访问类属性,实例只有函数属性 类在调用自己的函数属性时,self参数为实例 School.func(p1) 函数属性命名建议定义:动词+名词:干什么事 类和实例的属性增删改查 实例调用class的方法时会自动传参,若实例自己调自己是不会自动传self参的 ##

【转】LINQ之SelectMany

断了今生、忘了曾经 提交于 2019-11-30 03:22:19
转载来源 https://www.cnblogs.com/cncc/p/9840463.html 一、第一种用法: public static IEnumerable<TResult> SelectMany<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TResult>> selector); 官方释义:将序列的每个元素投影到 IEnumerable<TResult> 并将结果序列合并为一个序列。 废话不多说,直接Post上代码: 1,编写Person类: class Person { public string Name { set; get; } public int Age { set; get; } public string Gender { set; get; } public Dog[] Dogs { set; get; } } 2,编写Dog类: public class Dog { public string Name { set; get; } } 请注意:在Person类里有一个Dog数组,用于存储实例化Person类所拥有的所有Dog集合,这里就是SelectMany的关键。 3、编写客户端试验代码: List<Person> personList

c++的char []和char *的区别

淺唱寂寞╮ 提交于 2019-11-29 21:29:21
#include<iostream> using namespace std; int main() {   char *p1 = "abcd";   char p2[] = "1234";   return 0; } 这二者的区别还在于: 1. p1是一个指针变量,有一块内存存储它,它的内容是字符串的地址,那么我们要访问字符串就先要取出p1中存储的地址,然后计算偏移量,进行访问 2. 不同于p1,p2直接是字符串的地址,可直接访问 “abcd”在常量区分配了内存存储,栈上分配一地址给p1并指向“abcd”,那么如果在后面的代码中改变了“abcd”,自然崩溃。所以,需要加上const限定。 但是说到底,为什么改变p1就是危险的,字符数组的内容就能随意改变呢?这是因为“abcd”是在编译时刻就确定的,而“1234”是在运行时刻赋值的。所以,编译器在编译时就已经知道p1指向的是常量,他并不希望你改变,但是数组不同,可以说他只是个存储的工具,编译器编译时并不知道它里面是什么。 但在往后的存取中,在栈上的数组比指针所指向的字符串是要快的。 来源: https://www.cnblogs.com/yangxingsha/p/11533336.html

Luogu P1098 字符串的展开

假装没事ソ 提交于 2019-11-29 19:42:17
这几天 划了划水 看了看初赛的试题 ,没写什么随笔。 今天刷刷洛谷试炼场。(不要问为什么我还在普及区) 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“ d-h ”或者“ 4-8 ”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“ defgh ”和“ 45678 "。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下: (1) 遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“ - ”,减号两侧同为小写字母或同为数字,且按照 ASCII 码的顺序,减号右边的字符严格大于左边的字符。 (2) 参数 p 1 ​ :展开方式。 p 1 ​ = 1时,对于字母子串,填充小写字母; p 1 ​ = 2时,对于字母子串,填充大写字母。这两种情况下数字子串的填充方式相同。 p 1 ​ = 3时,不论是字母子串还是数字字串,都用与要填充的字母个数相同的星号“*”来填充。 (3) 参数 p 2 ​ :填充字符的重复个数。 =k p 2 ​ = k表示同一个字符要连续填充k个。例如,当 =3 p 2 ​ = 3时,子串“ d-h ”应扩展为“ deeefffgggh ”。减号两边的字符不变。 (4) 参数 p 3 ​ :是否改为逆序:

【CSS】聊一聊css的选择器

时光总嘲笑我的痴心妄想 提交于 2019-11-29 12:41:54
对于css来说,他的基本语法就是 选择器 { K:V; K:V; K:V } 所以css的学习就分为两个部分: * 1 选择器 选中元素(标签) * 2 各种属性 其中选择器尤为重要,因为如果无法确定样式具体作用的标签,那么设置样式也就无从谈起。所以今天我们一起来聊一聊css中的选择器。 一 基本选择器 首先我们需要掌握几种基本选择器,如果能熟练掌握基本选择器,实际上就可以开发出大部分的页面样式。 1.1 标签选择器 最基本的选择器就是标签选择器,标签选择器就是直接使用div,p这种标签名,这种设定会影响到页面中所有的该标签。 2css.html (head部分) <style> /* 所有p标签都起作用*/ p { color: orange; } </style> 2css.html (body部分) 1 <p>第一段</p> 2 <div> 3 <div> 4 <div> 5 <div> 6 <p>我隐藏的比较深</p> 7 </div> 8 </div> 9 </div> 10 </div> 实现效果: 两个p标签都改变了样式,字体颜色变成了橘黄色。 1.2 类选择器 如果我们只希望更改第一个p标签的样式,而不更改第二个p标签,这时候就可以选择类选择器,具体实现方法就是给标签添加class属性,要注意可以给不同的标签赋予同样的类名,因为物以类聚,人以群分

java拷贝--clone

旧城冷巷雨未停 提交于 2019-11-29 09:48:00
大纲: java如何拷贝对象。 浅拷贝 深拷贝 一、java如何拷贝对象 Person p = new Person(); Person p2 = p; 上例并不是一个拷贝操作,只是把p对象的引用赋给了p2,2个变量指向了同一片heap地址。 想实现拷贝操作需要做2件事情: (1)实现Cloneable接口,这是一个空接口不用重写任何方法。 public interface Cloneable {} (2)重写clone方法,注意clone方法是Object类中的native方法,并不是Cloneable接口的。 二、浅拷贝 改写Person类 @Data public class Person implements Cloneable { private String name; private int age; private Date birth; @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", birth=" + birth.getTime() + '}'; } @Override public Person clone() { Object clone = null; try { clone = super.clone(

第十一章、菱形继承问题

风格不统一 提交于 2019-11-28 18:20:55
目录 第十一章、菱形继承问题 一、菱形继承问题 第十一章、菱形继承问题 一、菱形继承问题 引用:属性查找顺序中 对象自身——》子类——》父类(多继承)——》报错 中间父类多继承的查找顺序问题 而对经典类和新式类来说,属性的查找顺序是不同的。现在我们分别看一下经典类和新式类两种不同的表现: 经典类 #! /usr/bin/python # -*- coding:utf-8 -*- class P1(): def foo(self): print 'p1-foo' class P2(): def foo(self): print 'p2-foo' def bar(self): print 'p2-bar' class C1(P1,P2): pass class C2(P1,P2): def bar(self): print 'C2-bar' class D(C1,C2): pass if __name__ =='__main__': d=D() d.foo() d.bar() ​ 执行的结果: ​ p1-foo p2-bar 把代码实例画了图 从上面经典类的输出结果来看, 实例d调用foo()时,搜索顺序是 D => C1 => P1, 实例d调用bar()时,搜索顺序是 D => C1 => P1 => P2 总结:经典类的搜索方式是按照“从左至右,深度优先”的方式去查找属性

面向对象

妖精的绣舞 提交于 2019-11-27 10:50:48
一、基础了解(面向对象:简称 OOP 是一种程序设置模式) 面向对象是一个思想,就是把解决问题的注意力集中到对象上,把所有相关的属性和方法封装到一个对象中 一般基础的编程都是面向过程的,涉及到大的网站的时候通常都采用面向对象的方法   面向对象基于面向过程但又不等同于面向过程,他是在面向过程的基础上,对涉及到的代码进行封装,然后调用,实现效果   类:通过class定义,首字母要大写   对象:是类的实例 通过new关键字,得到一个实例对象 二、优势 面向对象大大节省了代码的重用,减少了代码量   对象只是一种特殊的数据。对象拥有 属性 和 方法 。 三、特征 三大特征:封装、继承、多态 继承:通过继承,可以使子类获取到父类的属性和方法,从而能够提高代码的复用性,他不仅拥有父级的属性和方法,还有独属于他的属性方法   多态:不同的对象可以定义相同名称的方法,方法作用于所在的对象中。这种不同对象通过相同方法的调用实现各自行为的能力,被称之为多态。 四、面向对象中的this指向 在全局中,this指向window;   在绑定事件的是处理函数中,this指向事件源 在对象的方法中使用,this指向那个对象本身 在定时器中调用函数使用,this指向window js js继承   1、原型继承:将父类的实例对象赋值给子类的原型 私有的、公有的都继承为公有的。 function

洛谷P1098 字符串的展开

我只是一个虾纸丫 提交于 2019-11-27 10:22:47
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678"。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下: (1) 遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符严格大于左边的字符。 (2) 参数p1​:展开方式。p1=1时,对于字母子串,填充小写字母;p1=2​时,对于字母子串,填充大写字母。这两种情况下数字子串的填充方式相同。p1=3时,不论是字母子串还是数字字串,都用与要填充的字母个数相同的星号“*”来填充。 (3) 参数p2​:填充字符的重复个数。p2=k表示同一个字符要连续填充k个。例如,当p2=3时,子串“d-h”应扩展为“deeefffgggh”。减号两边的字符不变。 (4) 参数p3​:是否改为逆序:p3=1表示维持原来顺序,p3=2表示采用逆序输出,注意这时候仍然不包括减号两端的字符。例如当p1=1​、p2=2​、p3=2时,子串“d-h”应扩展为“dggffeeh”。 (5) 如果减号右边的字符恰好是左边字符的后继

JS实现继承的几种方式

青春壹個敷衍的年華 提交于 2019-11-27 02:36:52
1、借用构造函数实现继承 function P1(){   this.name = "P1"; } function C1(){   P1.call(this);   this.type = "C1"; } 缺点:C1无法继承P1的原型对象,只是部分继承 2、借用原型链实现继承 function P2(){   this.name = "P2";   this.play = [1,2,3]; } function C2(){   this.type = "C2"; } C2.prototype = new P2(); 缺点:原型对象的属性是共享的 3、组合式继承 function P3(){   this.name = "P3";   this.play = [1,2,3]; } function C3(){   P3.call(this);   this.type = "C3"; } C3.prototype = Object.create(P3.prototype); C3.prototype.constructor = C3; 来源: https://www.cnblogs.com/sunww/p/11338792.html