Java 多播(多次类型转换)难题

javaobject oriented programmingprogramming

简介

Java 多播也称为多次类型转换。它是将值从一种数据类型转换为另一种数据类型的过程,涉及多次类型转换。它允许我们更改变量的数据类型以执行其他方式无法实现的操作。

让我们讨论 Java 中的多播。我们将讨论数字多播以在数字数据类型之间进行转换。我们还将讨论对象多播以将子类对象视为超类对象。我们还将提供简单的编程示例以轻松理解此主题。

Java 中的数字多播

在此编程示例中,我们将看到 Java 中的数字多播。

示例


public class first 
{
   public static void main (String args [])
   {
        // 首先,我们将 int 转换为 byte
        int num1 = -1;
        byte num2 = (byte) num1;
        System.out.println("步骤 1 - int 转换为 byte:");
        System.out.println("num1 (int) = " + num1);
        System.out.println("num2 (byte) = " + num2);
        
        // 其次,我们将 byte 转换为 char
        char char1 = (char) num2;
        System.out.println("\n步骤 2 - byte 转换为 char:");
        System.out.println("char1 (char) = " + (int) char1);
        
        // 然后,我们将 char 转换为 int
        int num3 = char1;
        System.out.println("\n步骤 3 - char 转换为 int:");
        System.out.println("num3 (int) = " + num3);
        
        // 然后我们将 int 转换为 short
        short num4 = (short) num3;
        System.out.println("\n步骤 4 - int 转换为 short:");
        System.out.println("num4 (short) = " + num4);
        
        // 我们将 short 转换为 byte
        byte num5 = (byte) num4;
        System.out.println("\n步骤 5 - short 转换为 byte:");
        System.out.println("num5 (byte) = " + num5);
        
        // 将 byte 转换为 long
        long num6 = (long) num5;
        System.out.println ("\n步骤 6 - byte 转换为 long:");
        System.out.println ("num6 (long) = " + num6);
        
        // 将 long 转换为 double
        double num7 = (double) num6;
        System.out.println("\n第 7 步 - long 转 double:");
        System.out.println("num7 (double) = " + num7);
   }
}

输出

Step 1 - int to byte:
num1 (int) = -1
num2 (byte) = -1

Step 2 - byte to char:
char1 (char) = 65535

Step 3 - char to int:
num3 (int) = 65535

Step 4 - int to short:
num4 (short) = -1

Step 5 - short to byte:
num5 (byte) = -1

Step 6 - byte to long:
num6 (long) = -1

Step 7 - long to double:
num7 (double) = -1.0

首先,我们定义了一个名为 first 的类,并在该类中调用了 main() 函数。在 main() 函数中,我们必须将整数转换为字节。为此,我们分别声明了两个名为"num1"和"num2"的变量。"num1"是整数类型,"num2"是字节类型变量。-1 被分配给变量"num1",在下一行中,我们将"num1"的类型转换为字节类型。


int num1 = -1;
byte num2 = (byte) num1;

然后我们只需打印这个值即可。


System.out.println ("步骤 1 - int 到 byte:");
System.out.println ("num1 (int) = " + num1);
System.out.println ("num2 (byte) = " + num2);

之后,我们将字符转换为整数。为此,我们声明了一个名为"char1"的字符,并将字节转换为字符。


char char1 = (char) num2;

然后我们简单地打印这个类型转换值。


System.out.println("\nStep 2 - byte to char:");
System.out.println("char1 (char) = " + (int) char1 ");

之后,我们将一个整数转换为一个短整型。为此,我们声明了一个名为"num4"的整数,并将整数转换为短整型。


short num4 = (short) num3;

然后,我们只需打印此类型转换值即可。


System.out.println("\nStep 4 - int to short:");
System.out.println("num4 (short) = " + num4);

之后,我们将一个短整型转换为一个字节。为此,我们声明了一个名为"num5"的字节,并将短整型转换为字节。


byte num5 = (byte) num4;

然后我们只需打印此类型转换值即可。


System.out.println("\nStep 5 - short to byte:");
System.out.println("num5 (byte) = " + num5);

之后我们将 short 类型转换为字节。为此,我们声明了一个名为"num5"的字节,并将 short 类型转换为字节。


byte num5 = (byte) num4;

然后我们只需打印此类型转换值即可。


System.out.println("\nStep 5 - short to byte:");
System.out.println("num5 (byte) = " + num5);

之后,我们将字节转换为长整型。为此,我们声明了一个名为"num6"的长整型,并将短整型转换为字节。


long num6 = (long) num5;

然后我们只需打印此类型转换值即可。


System.out.println ("\nStep 6 - byte to long:");
System.out.println ("num6 (long) = " + num6);

之后,我们将 long 转换为 double。为此,我们声明了一个名为"num6"的 double,并将 long 转换为 double。


double num7 = (double) num6;

然后,我们只需打印此类型转换值即可。


System.out.println("\n第 7 步 - long 转换为 double:");
System.out.println("num7 (double) = " + num7

然后我们在屏幕上得到了结果输出。

Java 中的对象多播

在这个编程示例中,我们将看到 Java 中的对象多播。

示例


class Zoo
{
   void makeSound()
   {
      System.out.println("Some random noise");
   }
}
class Dog extends Zoo 
{
   void makeSound() 
   {
      System.out.println("Bark!!");
   }
}
class Cat extends Zoo
{
   void makeSound() 
   {
      System.out.println("Meow!!");
   }
}
class Tiger extends Zoo 
{
   void makeSound() 
   {
      System.out.println("Roar!!");
   }
}
public class MulticastPuzz
{
   public static void main(String args [])
   {
        // 使用超类引用进行对象多播
        Zoo zoo1 = new Dog();
        Zoo zoo2 = new Cat();
        Zoo zoo3 = new Tiger();
        
        // 通过使用多态性,我们可以访问子类方法
        Dog dog = (Dog) zoo1;
        dog.makeSound();
        ((Cat) zoo2).makeSound();
        ((Tiger) zoo3).makeSound();
        
        // 对象多播
        Zoo[] zoos = new Zoo[3];
        zoos[0] = new Dog();
        zoos[1] = new Cat();
        zoos[2] = new Tiger();
   }
}

输出

Bark!!
Meow!!
Roar!!

首先,我们定义了一个名为 Zoo 的类,并在该类中调用了 makeSound () 函数。现在 dog 类扩展了 zoo 类。在 dog 类中,我们通过继承属性调用了 makeSound ()。


class Dog extends Zoo 
{
   void makeSound() 
   {
      System.out.println("Bark!!");
   }

现在 cat 类扩展了 zoo 类。在 dog 类中,我们通过继承属性调用了 makeSound()


class Cat extends Zoo 
{
   void makeSound() 
   {
      System.out.println("Meow!!");
   }

现在,类 tiger 扩展了类 zoo。在 tiger 类中,我们通过继承属性调用了 makeSound()。


class Tiger extends Zoo 
{
   void makeSound() 
   {
      System.out.println("Roar!!");
   }
}

现在,类 tiger 扩展了类 zoo。在 tiger 类中,我们通过继承属性调用了 makeSound()。


class Tiger extends Zoo 
{
   void makeSound() 
   {
      System.out.println("Roar!!");
   }
}

现在我们定义了一个名为 MultiCastPuzz 的类,并在该类中调用了 main () 函数。在 main () 函数中,我们使用超类引用进行对象多播。


Zoo zoo1 = new Dog();
Zoo zoo2 = new Cat();
Zoo zoo3 = new Tiger();

之后 // 通过使用多态性,我们可以访问子类方法。


dog.makeSound();
((Cat) zoo2).makeSound();
((Tiger) zoo3).makeSound();

最后,我们对对象进行了多播。


Zoo[] zoos = new Zoo[3];
zoos[0] = new Dog();
zoos[1] = new Cat();
zoos[2] = new Tiger();

结论

在本文中,我们学习了很多有关如何在 Java 中进行多播或在 Java 中进行多次类型转换的知识。此过程有助于程序员减少代码编写量和精力。这是 Java 的一个独特功能,与不支持此类机制的其他语言相比,它是一种更智能的语言。


相关文章