类型转换

JAVA面向对象的三大特性 多态

天大地大妈咪最大 提交于 2020-02-07 04:46:05
多态 指的是对象的多种形态 继承是多态的实现基础,别忘了子父类要有继承关系. 多态特性: 一、引用多态 1.父类引用可以指向本类对象 Animal obj1 = new Animal(); 2.父类引用可以指向子类对象 Animal obj2 = new Dog(); 但是我们不能用子类的引用指向父类对象 Dog obj3 = new Animal();//错 二、方法多态 创建本类对象时,调用的方法为本类方法。 创建子类对象时,调用的方法为子类重写的方法或者继承的方法。 1.在父类Animal中定义一个eat()方法,输出一个语句(动物有吃的能力); 在子类Dog中重写eat()方法,输出一个语句(狗是吃肉的); 那么我们在测试类main函数里面,如果obj1.eat() ,那么调用的是父类的方法. 若用obj2调用eat()方法,那么调用的是子类的方法. 2.还有一种情况,比如创建一个继承父类Animal的子类Cat ,但是Cat里并不重写继承的eat()方法. 然后,我们在测试类main函数里创建一个子类对象, Animal obj3 = new Cat(); 然后调用 obj3.eat(); 那么,结果调用的则是子类继承父类的方法. (输出结果:动物有吃的能力) 3.最后一种特殊情况,多态的特性是不能使用的. 若在子类添加一个独有的方法 public void

Effective C++学习笔记(0)

元气小坏坏 提交于 2020-02-06 23:11:57
0 导读 术语 声明式(declaration) 对象声明(object)——指定类型 函数声明(function)——指定参数和返回类型 类声明(class)——指定类名 模板声明(template)——tempalte或template 定义式(definition) 1、为对象(object)分配内存 2、为函数(function)或模板函数(template function)提供代码本体 3、列出类(class)和模板类(template class)的成员 初始化(initialization) 对于类来说,其对象的初始化需要通过构造函数来实现。 1、默认构造函数(default constructor) 参数列表要么没有参数,要么所有参数都提供缺省值。 2、构造函数(constructor) 在自己定义构造函数时,可以在类名前加上 explicit关键字 进行限定,禁止编译器执行非预期的类型转换。即内置类型向类类型的转换不能通过隐式类型转换进行,而只能通过 显示类型转换 (强制类型转换)实现。 3、复制构造函数(copy constructor) 一般在定义一个类时,会自动定义复制构造函数和重载复制运算符,但 如果私有数据中有指针类型变量时,就需要自己重新定义复制构造函数和重载的赋值运算符,实现深度复制——拷贝指针所指向的地址中所存放的值 ;否则会自动执行浅复制—

Python 数字类型转换

左心房为你撑大大i 提交于 2020-02-06 15:57:20
Python数字类型转换:   int(x):将 x 转换为一个整数   float(x):将 x 转换为一个浮点数   complex(x,y):将 x 和 y 转换为一个复数。x 为复数的实部,y 为复数的虚部。   eval(x):将 x 转化为一个整数   chr(x):x 为数字,将数字转化为对应的 ASCII 码。 65 -> A 、90 -> Z   ord(x):x 为单个字符,将字符转换为对应的整数。 a -> 97、122 -> z # 将 float 浮点型转化成 int 长整型 num_float = 3.5 print(num_float) # 3.5 print(type(num_float)) # <class 'float'> num_int = int(num_float) print(num_int) # 3 print(type(num_int)) # <class 'int'> # 将 2,3 转化为复数 num_complex = complex(2,3) print(num_complex) # (2+3j) print(type(num_complex)) # <class 'complex'> # 将字符串转化为数字类型 str_num = '789' num = eval(str_num) print(num) # 789

datetime.timedelta类型转换为int类型

拥有回忆 提交于 2020-02-06 12:26:23
import datetime prev_day = datetime . datetime ( 2017 , 12 , 31 ) cur_day = datetime . datetime ( 2018 , 1 , 31 ) diff = cur_day - prev_day print ( diff ) 31 days , 0 : 00 : 00 diff是datetime.timedelta类型的数据 datetime.timedelta类型转换为int类型:diff.days import datetime prev_day = datetime . datetime ( 2017 , 12 , 31 ) cur_day = datetime . datetime ( 2018 , 1 , 31 ) diff = cur_day - prev_day print ( diff ) print ( diff . days ) print ( type ( diff . days ) ) 31 days , 0 : 00 : 00 31 < class 'int' > 来源: CSDN 作者: Summer要重新做人 链接: https://blog.csdn.net/yxys01/article/details/104192299

杂乱笔记

倖福魔咒の 提交于 2020-02-06 00:37:30
1.不要返回局部对象的指针或引用,子函数一旦完成,它所占用的存储空间也会被释放掉,因此函数中止意味着局部变量的引用将不再指向有效的内存区域。 2.函数重载与const形参: 由于顶层const不影响传入函数的对象,因此注意有些包含const的重载是无效的;对于接受引用或者指针的函数而言,对象是常量还是非常量对应的形参不同。 int func(int) int func(const int)//无效 int func(int*) int func(int* const)//无效 int func(int&) int func(const int&)//有效 int func(int*) int func(const int*)//有效 3.函数有默认实参时,只能省略后部实参,设计函数时,应当将经常使用默认值的参数放在后头。在函数的默认参数里面可以使用表达式,只要表达式在函数外已经预先定义并能转化成形参所需类型即可。 4.内联函数 对于规模较小的操作定义成函数具有很多好处:*阅读理解时,读函数的名字要比读代码更加容易,*使用函数可以确保行为统一,*每次相关操作都可以用同样的方式进行;*便于修改所有该操作出现的地方;可复用。调用函数包含着一些列工作比如保存寄存器、拷贝实参、转向另外一个位置继续执行等,此时如果使用内联函数就能在编译过程中展开成实质代码,从而消除函数调用时的开销。

C++类型转换操作符(type conversion operator)

五迷三道 提交于 2020-02-05 05:34:59
类型转换操作符(type conversion operator)是一种特殊的类成员函数,它定义将类类型值转变为其他类型值的转换。转换操作符在类定义体内声明,在保留字 operator 之后跟着转换的目标类型。boost::ref和boost::cref就使用到了类型转换操作符。 函数原型 T1::operator T2() [const];   //T1的成员函数,"(T2)a"类型转换 1. 转换函数必须是成员函数,不能指定返回类型,并且形参表必须为空;返回值是隐含的,返回值是与转换的类型相同的,即为上面原型中的T2; 2. T2表示内置类型名(built-in type)、类类型名(class type)或由类型别名(typedef)定义的名字;对任何可作为函数返回类型的类型(除了 void 之外)都可以定义转换函数,一般而言,不允许转换为数组或函数类型,转换为指针类型(数据和函数指针)以及引用类型是可以的; 3. 转换函数一般不应该改变被转换的对象,因此转换操作符通常应定义为 const 成员; 4. 支持继承,可以为虚函数; 5. 只要存在转换,编译器将在可以使用内置转换的地方自动调用它; 先通过一个简单的例子来说明如何使用类型转换操作符 1 #include <iostream> 2 3 class D { 4 public: 5 D(double d) : d_(d)

java笔记day_02

扶醉桌前 提交于 2020-02-04 23:24:03
1 /* 2 当数据类型不一样时,将会发生数据类型转换。 3 4 自动类型转换(隐式) 5 1.特点:代码不需要进行特殊处理,自动完成。 6 2.规则:数据范围从小到大。(与字节数是不一定相关的) 7 8 强制类型转换(显示) 9 1.特点:代码需要进行特殊的格式处理,不能自动完成。 10 2.格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据; 11 12 注意事项: 13 1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出 14 2.byte/short/char这三种类型都可以发生数学运算,例如加法“+”。 15 3.byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后在计算。 16 4.boolean类型不能发生数据类型转换 17 18 数字和字符的对照关系表(编码表): 19 ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码 20 Unicode码表:万国码。也是数字和字符的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含有更多字符 21 22 48 - ‘0’ 23 65 - ‘A’ 24 97 - ‘a’ 25 */ 26 public class Demo01DataType{ 27

多态(Java)

戏子无情 提交于 2020-02-04 17:43:51
多态(Java) 一、多态 1、什么是多态? 不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2、使用多态的优点 : 为了实现统一调用 二、子类到父类的转换(向上转型) ① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换 ② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法 ③ 通过父类引用变量无法调用子类特有的方法 三、java中两种实现和使用多态的方式 ① 使用父类作为方法形参 ② 使用父类作为方法返回值 四、父类到子类的转换(向下转型) 将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换 五、instanceof运算符 语法: 对象 instanceof 类或接口 该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false 注: ① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误 ② instanceof通常和强制类型转换结合使用 一、多态 1、什么是多态? 不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2、使用多态的优点 : 为了实现统一调用 二、子类到父类的转换(向上转型) ① 将一个父类的引用指向一个子类对象,成为向上转型

003.Python数据类型转换

白昼怎懂夜的黑 提交于 2020-02-03 00:53:25
一 自动类型转换 (针对于Number类型) bool float int complex 当Number不同的数据类型进行运算的时候,默认向更高精度转化 精度从低到高顺序:bool -> int -> float ->complex True 默认转化是1 False 默认转化是0 # (1) bool + int res = True + 89 print(res) # (2) bool + float res = True + 55.78 print(res) # (3) bool + complex res = False + 2-4j print(res) # (4) int + float res = 31 + 4.1 print(res) # (5) int + complex res = 17 + 4-7j print(res) # (6) float + complex res = 8.12 + 3+5j print(res) [root@node10 python]# python3 test.py 90 56.78 (2-4j) 35.1 (21-7j) (11.12+5j) 二 强制类型转换 Number => (int float bool complex) 2.1 把数据强制转换成整型 int (整型 浮点型 布尔类型 纯数字字符串) var1 = 13

Java知识点整理 - 1:基础知识

旧城冷巷雨未停 提交于 2020-02-02 14:17:13
1 、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java 虚拟机,用于保证java的跨平台的特性。 java 语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java 的运行环境,包括jvm+java的核心类库。 JDK(Java Development Kit):java 的开发工具,包括jre+开发工具 2 、环境变量path和classpath的作用是什么? (1)path 是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录, 用于指定DOS窗口命令的路径。 (2)Classpath 是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。 3 、变量有什么用?为什么要定义变量?什么时候用? 答:变量的作用:用来存储数据。 为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用 4 、&和&&的区别? (1)&&会出现短路,如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算; 只能操作boolean类型数据; (2)&不会出现短路,将整个表达式都运算。既可以操作boolean数据还可以操作数。 5 、标示符命名规则: 由数字(0-9),大小写英文字母,以及_和$组成。 不能以数字开头。