类型转换与对象的多态认识

来源:互联网 发布:淘宝买彩票在哪里 编辑:程序博客网 时间: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运行机制中,向上以为着可以自动转换,向下需要强制转换。

原创粉丝点击