java - 公共(public)静态无效是什么意思?什么是类(class)?

标签 java

我刚刚接受了我制作的所有程序都必须以此开始。然后我正在看一个例子#2 here关于随机数的生成。

import java.util.Random;

/** Generate random integers in a certain range. */
public final class RandomRange {

  public static final void main(String... aArgs){
    log("Generating random integers in the range 1..10.");

    int START = 1;
    int END = 10;
    Random random = new Random();
    for (int idx = 1; idx <= 10; ++idx){
      showRandomInteger(START, END, random);
    }

    log("Done.");
  }

  private static void showRandomInteger(int aStart, int aEnd, Random aRandom){
    if (aStart > aEnd) {
      throw new IllegalArgumentException("Start cannot exceed End.");
    }
    //get the range, casting to long to avoid overflow problems
    long range = (long)aEnd - (long)aStart + 1;
    // compute a fraction of the range, 0 <= frac < range
    long fraction = (long)(range * aRandom.nextDouble());
    int randomNumber =  (int)(fraction + aStart);    
    log("Generated : " + randomNumber);
  }

  private static void log(String aMessage){
    System.out.println(aMessage);
  }
} 

我注意到它有一个公共(public)静态空和一个私有(private)静态空。为什么不在 public static void 下将代码合并为一件事呢?更重要的是,这些意味着什么?我做了研究,发现“类(class)”这个词经常出现。什么是类(class)?我希望我的问题符合指导方针,这是我第一次在这里发帖。谢谢。

最佳答案

我假设您在这里问这个问题是因为您想要一个简洁的答案来给您一些直觉,而不是深入了解 OOP您可以从教程中获取。

是构建对象的模板。然而,直到你明白OOPclass 只是您正在编写的命令式代码的必要包装,因为 Java 要求所有代码都位于类中。

public 表示该方法可公开访问。在该类以外的类中定义的方法可以访问它。 private 具有相反的含义。

static 意味着这是一个类级函数,不依赖于该类的任何特定实例。

void 表示该方法不返回任何内容。

您当然可以将所有代码放在一个方法下,但这至少会带来以下问题。

  1. 代码更难阅读,因为代码的意图被实现的细节隐藏了。
  2. 代码更难重用,因为当您在多个位置需要相同的功能时,您必须复制并粘贴。

关于java - 公共(public)静态无效是什么意思?什么是类(class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36217198/

相关文章:

java - 带描述的图像 slider

java - CPU 使用率

java - show() 时弹出菜单崩溃;

java - 如何将文件内容解析为变量?

java - 从 grails 闭包返回特定值

java - Spring Boot-云 :/actuator/refresh working but not able to get the changed values on the fly

java - 为什么 webapps 更喜欢/WEB-INF/lib 而不是/META-INF/MANIFEST.MF?

java - 在 AsyncTask 中获取 Json 时,项目未添加到列表 <Object> 中

java - Java 中的 AtomicLong 是用来做什么的?

Java、流、收集器、函数式编程 : How to make a double entry map?