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

在这个示例中:

  • public class HelloWorld 定义了一个名为 HelloWorld 的公共类。
  • public static void main(String[] args) 是一个main方法,是 Java 程序的入口点,也就是说,程序从这里开始执行。
  • System.out.println("Hello, World!"); 用于在控制台输出指定的文本。                                                                                                                                                                       

  • “public static void main (String [] args)” 这一整个部分在 Java 中有着特别关键的作用。

    “public” 意味着这个方法具有最高的访问权限,任何其他的类都能够调用它。

    “static” 表明这个方法属于本身,无需先创建这个类的对象就能直接使用。

  • “void” 指明这个方法在执行结束后不会返回任何具体的值。

  • “main” 是这个方法特定的名称,Java 规定程序要从这里开始运行。

    “String [] args” 是这个方法能够接收的参数,它是一个字符串类型的数组。当您在命令行中运行 Java 程序时,如果输入了一些参数,                    比如 “java YourClassName arg1 arg2”,那么 “arg1” 和 “arg2” 这样的参数就会被存放到 “args” 这个数组里,后续程序在 “main” 方法中就能够对这些传入的参数进行处理和使用。

在 Java 中,“公共类”(用 public 修饰的类)具有以下特点和含义:

public 修饰符使得这个类可以被其他任何类访问。这意味着其他的类,无论它们在同一个包(package)中还是在不同的包中,都能够创建这个公共类的对象、调用其公共方法、访问其公共属性等。一个 Java 源文件中最多只能有一个 public 类,并且这个公共类的名称必须与源文件的名称完全一致(包括大小写)。例如,如果您有一个名为 MyClass.java 的源文件,那么其中最多只能有一个 public 类,且这个类必须叫做 MyClass 。

在 Java 中,包(Package)是一种组织类和接口的机制。            您可以把包想象成一个文件夹,用于将相关的类和接口分组存放,以便更好地管理和组织代码包有助于避免类名冲突,因为不同包中的类可以有相同的名称。                                                                                              例如,有两个包 com.example.package1 和 com.example.package2 ,在 package1 中有一个叫 MyClass 的类,在 package2 中也可以有一个叫 MyClass 的类,它们不会相互干扰。创建包时,通常使用类似于域名的反向结构来确保唯一性,比如 com.example.myproject 。在代码中,可以通过 package 关键字来指定类所属的包,例如:

package com.example.myproject;

public class MyClass {
    // 类的内容
}

        在 Java 中创建包时,使用类似于域名的反向结构是一种常见的约定和最佳实践。 域名是从顶级域名(如.com 、.org 等)开始,然后依次是二级域名、子域名等。例如,对于网站 `www.example.com` ,其域名是 `example.com` 。 在创建 Java 包时采用反向的域名结构,比如,如果您拥有域名 `yourcompany.com` ,那么可能创建包 `com.yourcompany.projectname.module` 。

这样做的目的是确保唯一性,原因主要有以下几点: 1. 避免命名冲突:在 Java 开发中,不同的开发者和组织可能会创建相同名称的包。通过使用基于域名的反向结构,由于域名在全球范围内是唯一的,所以很大程度上降低了包名冲突的可能性。 2. 反映组织或项目结构:这种命名方式可以反映出代码所属的组织或项目的层次结构。 3. 便于识别和管理:基于特定的模式创建包名,使得代码更易于识别和管理,特别是在大型项目或多个团队协作的环境中。

总之,使用类似于域名的反向结构来创建包名有助于保持代码的组织性、可维护性,并减少命名冲突的风险。

包就像是一个大的分类盒子,我们把相关的、功能类似或者属于同一类别的 Java 类和接口都放到这个盒子里。比如说,您有一堆玩具,您可以把小汽车玩具都放在一个盒子里,把玩偶玩具放在另一个盒子里。在 Java 里,小汽车玩具就好比是一类相关的类,玩偶玩具又是另一类相关的类,而装它们的盒子就是包。每个包都有一个名字,就像每个盒子有一个标签一样,通过这个名字,我们能清楚地知道里面大概装的是什么类型的东西。而且,把不同的类放在不同的包里,可以让我们更容易找到和管理它们,也能避免不同地方的类名字重复导致混乱。

接口(Interface)在 Java 中是一种抽象的类型。接口定义了一组方法的签名,这些方法没有具体的实现代码。实现接口的类必须提供接口中定义的所有方法的具体实现。接口的主要作用是定义一种规范或者契约,让多个类遵循相同的方法定义来实现特定的功能。

        比如说,接口就像是一份 “任务清单”。这份清单上列出了一系列要完成的 “任务”,也就是方法,但它只是告诉您有这些任务存在,并没有告诉您具体怎么去完成这些任务,这就是 “方法没有具体的实现代码”。然后,有一些类说它们要去完成这份 “任务清单”,这就是 “实现接口”。当一个类实现了某个接口,就相当于它向 Java 承诺:“我会按照您在接口里列出的任务,把每个任务都好好完成。”具体来说,就是这个类必须为接口中定义的每一个方法,提供具体的代码来描述怎么去做这个任务,这就是 “提供接口中定义的所有方法的具体实现”

举个例子,我们有一个接口叫 Shape ,里面定义了一个方法 calculateArea :

interface Shape {
    double calculateArea();
}

这只是说有计算面积这么个任务,但没说怎么算。

然后有一个类 Circle 来实现这个接口:

class Circle implements Shape {
    private double radius;

    Circle(double radius) {
        this.radius = radius;
    }

    @Override
    public double calculateArea() {
        return Math.PI * radius * radius;
    }
}

在 Circle 类里,就给出了 calculateArea 方法具体怎么计算圆形面积的代码

注意!!!接口不一定要单独放在一个 Java 文件中。 它可以单独放在一个文件里,比如 `Shape.java` 只包含 `Shape` 接口的定义。 但也可以和实现它的类放在同一个文件中,不过为了让代码更清晰、更易维护和阅读,通常建议将接口单独放在一个文件里。

interface Shape {
        double calculateArea();
    }
class Circle implements Shape {
    private double radius;

    Circle(double radius) {
        this.radius = radius;
    }

    @Override
    public double calculateArea() {
        return Math.PI * radius * radius;
    }
}

       这段代码定义了一个名为 `Shape` 的接口,其中包含一个抽象方法 `calculateArea` ,用于计算形状的面积。 然后定义了一个名为 `Circle` 的类,它实现了 `Shape` 接口。`Circle` 类有一个成员变量 `radius` 表示圆的半径,并且在构造方法中初始化这个半径。 `calculateArea` 方法中通过公式 `Math.PI * radius * radius` 计算并返回了圆的面积,实现了接口中要求的方法。 对于这段代码,您还有哪里不太理解,或者还有什么相关的疑问吗?接下来咱们可以深入探讨一下类中的方法和成员变量的更多细节。

        在 Java 中,大部分有实际功能的代码通常都被组织在类里面。但也有一些特殊情况,比如匿名内部类,它可以在特定的上下文中直接定义和使用,而不需要给它一个明确的类名。

        不过,对于常见的、可复用的和有一定逻辑功能的代码,一般都会放在一个明确命名的类中,这样更便于代码的组织、管理和维护。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐