设有下面的一个类定义:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设有下面的一个类定义:相关的知识,希望对你有一定的参考价值。

设有下面的一个类定义: class AA static void Show( ) System.out.println("我喜欢Java!"); class BB void Show( ) System.out.println("我喜欢C++!"); 若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的:()
A、a.Show( ) b.Show( )
B、AA.Show( ); BB.Show( );
C、AA.Show( ); b.Show( );
D、a.Show( ); BB.Show( );

参考技术A C
static方法可以使用类名调用也可以使用对象调用
而BB类的那个方法只能使用对象调用
A本来也应该对的,可是没写分号本回答被提问者和网友采纳
参考技术B 这个题目稍微有点小问题,答案A和C都没有语法错误,如果单选题的话,那就选C,这是最佳答案,不过A也不会报错的。 参考技术C C答案正确,static 方法不用实例化对象就行~ 参考技术D c

23种设计模式

1.普通工厂模式。

首先由以下几个类,工厂类,接口,接口实现类,测试类。

接口:定义一个接口

接口实现类:实现上面的接口

工厂类:创建接口实现类的对象。

以下是下面的逻辑图

技术分享

定义一个接口:

      interface Sender{

        public void send();
      }

定义接口实现类:

  1. public class MailSender implements Sender {  
  2.     @Override  
  3.     public void Send() {  
  4.         System.out.println("this is mailsender!");  
  5.     }  

 

  1. public class SmsSender implements Sender {  
  2.   
  3.     @Override  
  4.     public void Send() {  
  5.         System.out.println("this is sms sender!");  
  6.     }  
  7. }  

建立工厂类:

  1. public class SendFactory {  
  2.   
  3.     public Sender produce(String type) {  
  4.         if ("mail".equals(type)) {  
  5.             return new MailSender();  
  6.         } else if ("sms".equals(type)) {  
  7.             return new SmsSender();  
  8.         } else {  
  9.             System.out.println("请输入正确的类型!");  
  10.             return null;  
  11.         }  
  12.     }  
  13. }  
      1. public class FactoryTest {  
      2.   
      3.     public static void main(String[] args) {  
      4.         SendFactory factory = new SendFactory();  
      5.         Sender sender = factory.produce("sms");  
      6.         sender.Send();  
      7.     }  
      8. }

 


以上是关于设有下面的一个类定义:的主要内容,如果未能解决你的问题,请参考以下文章

从 Delphi 中的类引用变量访问类常量

混合类Mixins介绍

23种设计模式

python中自定义函数类的引用(最全)

(2)Class类的基本使用

命令模式