public class Main {
public static void main(String[] args){
IMsg[]msgs=new IMsg[3];
msgs[0]=new VoiceMsg();
msgs[1]=new MoneyMsg(300);
msgs[2]=new TextMsg("我给你说哈....");
People p=new People();
p.read(msgs);
}
}
interface IMsg{
public void beReadable();
}
class TextMsg implements IMsg {
String text;
public TextMsg(String text) {
this.text = text;
}
@Override
public String toString() {
return "TextMsg:" + text;
}
class VoiceMsg implements IMsg {
@Override
public void beReadable() {
sound();
}
public void sound() {
System.out.println("播放语音信息");
}
}
class MoneyMsg implements IMsg {
double money;
public MoneyMsg(double money) {
this.money = money;
}
@Override
public String toString() {
return "MoneyMsg:" + money;
}
}
class People {
public void read(IMsg[] msgs) {
//处理每一条消息
for (int i = 0; i < msgs.length; i++) {
msgs[i].beReadable();
}
}
}
}
这段代码如何优化,纠正其中的错误
public class Main {
public static void main(String[] args){
IMsg[]msgs=new IMsg[3];
msgs[0]=new VoiceMsg();
msgs[1]=new MoneyMsg(300);
msgs[2]=new TextMsg("我给你说哈....");
People p=new People();
p.read(msgs);
}
}
interface IMsg{
void beReadable();
}
class TextMsg implements IMsg {
String text;
public TextMsg(String text) {
this.text = text;
}
@Override
public String toString() {
return "TextMsg:" + text;
}
@Override
public void beReadable() {
System.out.println(toString());
}
}
class VoiceMsg implements IMsg {
@Override
public void beReadable() {
sound();
}
public void sound() {
System.out.println("播放语音信息");
}
}
class MoneyMsg implements IMsg {
double money;
public MoneyMsg(double money) {
this.money = money;
}
@Override
public String toString() {
return "MoneyMsg:" + money;
}
@Override
public void beReadable() {
System.out.println(toString());
}
}
class People {
public void read(IMsg[] msgs) {
//处理每一条消息
for (int i = 0; i < msgs.length; i++) {
msgs[i].beReadable();
}
}
}
public class Main {
public static void main(String[] args){
// 创建一个长度为3的IMsg接口类型的数组
IMsg[] msgs = new IMsg[3];
// 创建一个VoiceMsg类型的对象,并赋值给msgs数组的第一个元素
msgs[0] = new VoiceMsg();
// 创建一个MoneyMsg类型的对象,并赋值给msgs数组的第二个元素,其中money属性值为300
msgs[1] = new MoneyMsg(300);
// 创建一个TextMsg类型的对象,并赋值给msgs数组的第三个元素,其中text属性值为"我给你说哈...."
msgs[2] = new TextMsg("我给你说哈....");
// 创建一个People类型的对象
People p = new People();
// 调用People对象的read方法,并将msgs数组作为参数传入
p.read(msgs);
}
}
// IMsg接口,包含beReadable方法
interface IMsg{
public void beReadable();
}
// TextMsg类实现了IMsg接口
class TextMsg implements IMsg {
String text;
public TextMsg(String text) {
this.text = text;
}
@Override
public String toString() {
return "TextMsg:" + text;
}
}
// VoiceMsg类实现了IMsg接口
class VoiceMsg implements IMsg {
// 重写了beReadable方法,用于播放语音信息
@Override
public void beReadable() {
sound();
}
public void sound() {
System.out.println("播放语音信息");
}
}
// MoneyMsg类实现了IMsg接口
class MoneyMsg implements IMsg {
double money;
public MoneyMsg(double money) {
this.money = money;
}
@Override
public String toString() {
return "MoneyMsg:" + money;
}
}
// People类
class People {
// read方法,接收一个IMsg类型的数组作为参数,并依次处理每一条消息
public void read(IMsg[] msgs) {
for (int i = 0; i < msgs.length; i++) {
msgs[i].beReadable();
}
}
}
#include<stdio.h>
#include<math.h>
void Fun(int n)
{
int i=0;
int t=n;
int m=n;
do
{
i++;
n/=10;
}while(n!=0);
printf("%d是%d位数\n",m,i);
printf("正序输出:\n");
int s=pow(10.0,i-1);
for(int j=0;j<i;j++)
{
printf("%d",t/s);
t%=s;
s/=10;
}
printf("\n");
printf("逆序输出\n");
do
{
printf("%d",m%10);
m/=10;
}while(m!=0);
printf("\n");
}
int main()
{
Fun(201);
Fun(10);
Fun(20000);
return 0;
}