基本数据类型转换

自动类型转换:把大类型的数据赋值给大类型的变量(此时的大小指的是容量的范围)

 byte b = 12;  //byte是一个字节
int i = b; //int是四个字节

强制类型转换:把大类型的数据赋值给小类型的变量

 short s  = (short) i ;i是int类型四个字节,s是short类型二个字节

引用类型转换:

引用类型的大和小,指的是父类和子类的关系

自动类型转换:把子类对象赋值给父类变量(多态)

 Animal a = new Dog();

强制类型转换:把父类类型对象赋给子类对象

 Animal a = new Dog();
Dog d = (Dog)a;

instanceof运算符:

判断某对象是否是某一个类的实例

 boolean b = 对象A instanceof 类B; //判断A对象是否是B类的实例,如果是,返回true

例子1:

 public void feed(Animal a)
{
a.eat();
if(a instanceof Dog) //如果动物a是Dog类对象
{
Dog d = (Dog) a;//将动物a强转为Dog类
d.watch(); //执行Dog类的看家方法
}
else if (a instanceof Cat) //如果动物a是Cat类对象
{
Cat c = (Cat)a; //将动物a强转为Cat类
c.catchMouse(); //执行Cat类的抓老鼠方法
}
}

例子2:

 Object obj = "ABC";  //多态,把String对象赋给Object类型
System.out.println(obj instanceof Object); //true
System.out.println(obj instanceof Object); //true
System.out.println(obj.getClass()); //获取对象的真实类型
System.out.println(obj.getClass() == String.class);//true
System.out.println(obj.getClass() == Object.class);//false

运行输出:

:

Java学习笔记(二十一):类型转换和instanceof关键字的更多相关文章

  1. Java学习笔记二十一:Java面向对象的三大特性之继承

    Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...

  2. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法

    python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...

  3. Java学习笔记二十六:Java多态中的引用类型转换

    Java多态中的引用类型转换 引用类型转换: 1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换: 2.向下类型转换(强制类型转换),是大类型到小类型的转换: 3.instanceof运算 ...

  4. (C/C++学习笔记) 二十一. 异常处理

    二十一. 异常处理 ● 异常的概念 程序的错误通常包括:语法错误.逻辑错误.运行异常. 语法错误指书写的程序语句不合乎编译器的语法规则,这种错误在编译.连接时由编译器指出. 逻辑错误是指程序能顺利运行 ...

  5. java学习笔记——数据类型及类型转换

    数据类型分为: 1.引用类型(字符型); 2.基本数据类型(数值型); 以下为基本数据类型介绍(括号内的数字表示该类型所占据的字节数) a.整型 byte(8)   short(16)   int(3 ...

  6. Java学习笔记二.1

    和其他高级语言类似,Java也具有以下部分 1.关键字:见下表,注意Java严格区分大小写,关键字都是小写 2.标识符:见下图 3.注释.有两种://(单行注释)和/**/(多行注释).还有一种文档注 ...

  7. Java基础学习笔记二十一 多线程

    多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...

  8. Java学习笔记二:数据类型II

    GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/Intpractice3.java 一  Java中的数据类型 Java ...

  9. Java学习笔记二十九:一个Java面向对象的小练习

    一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...

  10. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

随机推荐

  1. ngnix 500错误原因分析

    参考http://www.cnblogs.com/huqiang/p/5333975.html

  2. 多设备同时进行monkey抗压测试

    adb工具操作monkey抗压测试. 首先得安装adb工具,且配置好环境配置.推荐链接: 安装方法:https://blog.csdn.net/L_201607/article/details/781 ...

  3. memcache 应用场景

    一..memcache应用场景 1.应用场景一: 缓解数据库压力,提高交互速度.它的一个总原则是将经常需要从数据库读取的数据缓存在memcached中.这些数据也分为几类: (1).经常被读取并且实时 ...

  4. ElasticSearch(四):关于es的一些基础知识讲解

    上一篇博客更新完之后,我发现一个问题:在我创建索引的时候依旧无法准确的理解每个字段的意义,所以就有了这个. 1. 关于索引 1.1 关于索引的一些基础知识 在创建标准化索引的时候,我们传入的请求体如下 ...

  5. maven编译错误maven-assembly-plugin:2.2-beta-5:assembly (default-cli) on project

    maven对项目编译时报错 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2-beta ...

  6. tomcat8.5配置redis实现session共享(tomcat-redis-session-manager-master)

    1.将下面几个jar包依赖放到tomcat的lib目录下: 2.修改tomcat/conf下context.xml文件,在<Context>节点添加如下代码: <Valve clas ...

  7. django模型系统一

    django模型系统一 1.数据库的连接配置 django连接mysql的配置流程 安装pymysql       **  pip install pymysql 修改配置 修改setting的配置文 ...

  8. 策略模式(Strategy )

    为实现一个目的采用不同的方式都可实现,具体看要采取哪种方式. //接口 public interface Strategy {    public void algorithmInterface(); ...

  9. Vue 表单校验 vee-validate

    gitHub 地址:https://github.com/baianat/vee-validate 官网API 地址:https://baianat.github.io/vee-validate/ap ...

  10. NPOI 操作Word

    /// <summary> /// 替换word中指定内容 /// </summary> /// <param name="wordPath"> ...