Hello World 课程中的 OOP 概念

问题描述 投票:0回答:4

这个问题是在一次面试中问我的,面试官让我用java写一个简单的Hello World程序。这是我写的代码。

class Greeting
{ 
     public static void main(String[] args)
     { 
          System.out.print("Hello World!");
     }
}

然后有人问我这段代码实现了哪些 OOP 概念。我认为它使用继承,因为默认情况下每个 java 类都会扩展 Object 类。但想知道这里是否使用了其他 OOP 概念,如果是,那么如何使用?

java oop
4个回答
0
投票

可见性修饰符不是 OOP。唯一的 OOP 问题是它是 Java,并且您已经使用静态方法创建了一个类结构。

从技术上讲,您是正确的,所有未显式扩展任何内容的对象都隐式扩展了 Object 类。

class Greeting                              // class
{ 
     public static void main(String[] args) // method (default entry)
     { 
          System.out.print("Hello World!"); 
     }
}

它与 C(命令式语言)没有太大区别,唯一的区别是类封装包装器。

#include<stdio.h>

main() {                     // function (default entry)
    printf("Hello World!");
}

0
投票

我认为这里使用了多态和继承这两个oops概念。因为对象类是每个类的父类。


-1
投票

经典的:

永远不要使用这个:

class Greeting
{ 
 public static void main(String[] args)
 { 
      System.out.print("Hello World!");
 }
}

始终使用这个:

class Greeting
{ 
 public static void main(String[] args)
 { 
      new Greeting().hi();
 }

 private void hi(){
  System.out.print("Hello World!");
 }
}

这是简单的答案:-)但是,在你的代码中你应该使用静态上下文。


-1
投票

如果你实现了这样的东西,你可能有更多机会解释 OOP 概念。

public abstract class Greeting
{ 
     public abstract String getHelloWorldMessage();
}
public class EnglishGreeting extends Greeting
{ 
     private final String HELLO_WORLD_MESSAGE = "Hello World!";

     public String getHelloWorldMessage() { 
          return HELLO_WORLD_MESSAGE;
     }
}
public class SpanishGreeting extends Greeting
{ 
     private final String HELLO_WORLD_MESSAGE = "¡Hola Mundo!";

     public String getHelloWorldMessage() { 
          return HELLO_WORLD_MESSAGE;
     }
}
public class Main
{ 
     public static void main(String[] args) { 
          Greeting englishGreeting = new EnglishGreeting();
          Greeting spanishGreeting = new SpanishGreeting();
          System.out.print(englishGreeting.getHelloWorldMessage());
          System.out.print(spanishGreeting.getHelloWorldMessage());
     }
}
© www.soinside.com 2019 - 2024. All rights reserved.