类型转换与对象的多态认识
来源:互联网 发布:淘宝买彩票在哪里 编辑:程序博客网 时间:2024/05/16 14:19
一、类型的转换
1、了解Java的八种基础数据类型
(1)四种整数类型: byte(1字节,可以表示的数据范围是-2^7——2^7-1);
short(2字节,可以表示的数据范围是-2^15——2^15-1);
int(4字节,可以表示的数据范围是-2^31——2^31-1);
long(8字节,可以表示的数据范围是-2^63——2^63-1)。
(2)两种小数类型:float(4字节,可以表示的数据范围是-3.4E38——3.14E38,有效位是8位);
double(8字节,可以表示的范围是-1.7E308——1.7E308,有效位是16位);
(3)一种字符类型:char(2字节,可以表示的范围是0——2^16)。
(4)一种判断类型:boolean类型,其值为true(真),false(假)两种。
(5)一种特殊的数据类型:String类型。
2、数据的转换
【了解两条数据类型由大到小的排序:1、byte<short<int<long<float<double;2、char<int<long<folat<double。】
(1)自动转换:小范围到大范围(具体范围排序如上所示),JDK可以
(2)强制转换:大范围转小范围需要强制转换,会损失相应的精度。
二、对象的多态
1、概念:简单的理解是在继承关系中声明不同的对象,也可以理解为对象的多种状态。
2、两种转型: (1)向上转型,子类对象到父类对象;
(2)向下转型,父类对象到子类对象;
3、基本格式: (1)对象向上转型:父类 父类对象=子类实例(new 子类());
(2)对象向下转型:子类 子类对象=(子类)父类实例化(new 父类());
4、注意点: (1)向上转型是自动转换(理解上相当于数据类型转换中的同种兼容数据类型转到大范围的数据类型);
(2)向下转型的时候必须要明确转型子类的类型;
(3)在向上转型的时候,调用的方法都是子类覆写之后的方法,而且根据父类调用;
(4)在向下转型的时,需要先向上转型,也就是利用子类来实例化父类,明确父类是有子类的(在使用上是调用子类自己定义的方法和从父类中覆写后 的方法);
public class StateDemo1{
public static void main(String[] args) {
function(new B()); //每实例化一次,需要传递一次
function(new C());
}
public static void function(B b){ //此处需要根据实例化一次,接收一次
b.function1();
}
public static void function(C c){
c.function1();
}
}
class A{
public void function1(){
System.out.println("A中的功能1");
}
public void function2(){
this.function1();
}
}
class B extends A{
public void function1(){
System.out.println("B中覆写后的功能1");
}
public void function3(){
System.out.println("B中的功能3");
}
}
class C extends A{
public void function1(){
System.out.println("c中覆写后的功能1");
}
public void function4(){
System.out.println("C中的功能3");
}
}
5、使用对象多态的好处:可以根据对象的多态性接收任何的子类对象,避免实例化一次书写一次方法;
public class StateDemo{
public static void main(String[] args){
function(new B());
function(new C());
}
public static void function(A a){ //实例化后自动进行匹配接收
a.function1();
}
}
class A{
public void function1(){
System.out.println("A中的功能1");
}
public void function2(){
this.function1();
}
}
class B extends A{
public void function1(){
System.out.println("B中覆写后的功能1");
}
public void function3(){
System.out.println("B中的功能3");
}
}
class C extends A{
public void function1(){
System.out.println("c中覆写后的功能1");
}
public void function4(){
System.out.println("C中的功能3");
}
}
三、总结
1、在Java中最基础且最重要的语法结构:数据类型 数据别名=数据值;
2、在整数中系统默认的数据类型是int型、浮点数中默认类型是double类型,根据数据处理的大小,选择相应的数据类型;
3、chat、byte、short类型进行转换的时候需要强制转换;
4、在Java运行机制中,向上以为着可以自动转换,向下需要强制转换。
- 类型转换与对象的多态认识
- Java多态对象的类型转换
- 补码的认识 类型转换
- 对象的类型转换
- 对象类型的转换
- 对象类型的转换
- 关于struts2中类型转换的认识
- java入门教程-4.6Java多态对象的类型转换
- 对象与类的认识
- Java面向对象【经典案例】强制/自动类型转换与类型安全的转换
- 对象类型转换的总结
- java的对象类型转换
- java的对象类型转换
- JAVA的对象类型转换
- Javascript的 抽象类、接口、多态与类型转换
- json数组与对象类型转换
- 【JavaScript】封装对象与强制类型转换
- 带有Data类型的bean对象与JSON对象的转换
- ROS with V-rep (3) 之仿真velodyne16线激光 (ROS学习笔记六)
- 转:LibCurl HTTP部分详细介绍
- java_多线程简介
- java集合
- Faster-RCNN全攻略
- 类型转换与对象的多态认识
- 微服务架构综述
- web之简单xss注入
- 使用Gradle构建SpringBoot工程系列:第五篇:编写Spring Boot主类及第一次运行
- Ps和Sai文件自动保存,自动备份
- Redis学习——Redis持久化之AOF备份方式保存数据
- Excel VBA高效办公应用-第九章-VBA文秘办公技巧-Part2(查找同名同姓的员工)
- 面试题2:实现Singleton模式
- 配置jdk环境变量之后输入java -version出现bash: ./java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录