Java 多播(多次类型转换)难题
简介
Java 多播也称为多次类型转换。它是将值从一种数据类型转换为另一种数据类型的过程,并且涉及多次类型转换。它允许我们更改变量的数据类型以执行否则无法执行的操作。
让我们讨论 Java 中的多播。我们将讨论数值多播以在数值数据类型之间进行转换。我们还将讨论对象多播以将子类对象视为超类对象。我们还将提供简单的编程示例来轻松理解此主题。
Java 中的数值多播
在此编程示例中,我们将看到 Java 中的数值多播。
示例
public class first
{
public static void main (String args [])
{
// First we will do type cast int to byte
int num1 = -1;
byte num2 = (byte) num1;
System.out.println ("Step 1 - int to byte:");
System.out.println ("num1 (int) = " + num1);
System.out.println ("num2 (byte) = " + num2);
// second we will typecast byte to char
char char1 = (char) num2;
System.out.println("\nStep 2 - byte to char:");
System.out.println("char1 (char) = " + (int) char1);
// then we will typecast char to int
int num3 = char1;
System.out.println("\nStep 3 - char to int:");
System.out.println("num3 (int) = " + num3);
// then we will typecast int to short
short num4 = (short) num3;
System.out.println("\nStep 4 - int to short:");
System.out.println("num4 (short) = " + num4);
// we do casting short to byte
byte num5 = (byte) num4;
System.out.println("\nStep 5 - short to byte:");
System.out.println("num5 (byte) = " + num5);
// Casting byte to long
long num6 = (long) num5;
System.out.println ("\nStep 6 - byte to long:");
System.out.println ("num6 (long) = " + num6);
// Casting long to double
double num7 = (double) num6;
System.out.println("\nStep 7 - long to 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 ("Step 1 - int to 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);
之后,我们对短整型进行了类型转换为字节。为此,我们声明了一个名为“num5”的字节并将其类型转换为短整型到字节。
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);
之后,我们对长整型进行了类型转换为双精度浮点数。为此,我们声明了一个名为“num6”的双精度浮点数并将其类型转换为长整型到双精度浮点数。
double num7 = (double) num6;
然后我们简单地打印了这个类型转换的值。
System.out.println("\nStep 7 - long to 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 [])
{
// Object multicasting using superclass reference
Zoo zoo1 = new Dog();
Zoo zoo2 = new Cat();
Zoo zoo3 = new Tiger();
// by using polymorphism we access subclass methods
Dog dog = (Dog) zoo1;
dog.makeSound();
((Cat) zoo2).makeSound();
((Tiger) zoo3).makeSound();
// Object multicasting
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 的一项独特功能,使其与不支持此类机制的其他语言相比,成为一种更智能的语言。
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP