Java的小知识:

Java面向对象的小知识:

一、java 的命名规则

​ 源文件的名称必须与公共类的名称完全匹配,包括大小写。


二、java的主类

​ 在 Java 应用程序中,主类并不一定必须是 public 类,但如果你希望该类能够被外部访问(例如,从命令行启动),则它应该是 public

主类的定义

  • 公共类:如果主类是 public,它的名称必须与文件名匹配。
  • 非公共类:可以定义为没有 public 修饰符的类,但它只能在同一包内访问,并且不能直接作为 Java 应用程序的入口点。

实例:

1. 使用公共主类
// 文件名: MyApp.java
public class MyApp {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
2. 非公共主类
// 文件名: MyApp.java
class MyApp {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

在第二种情况下,如果你从命令行运行程序,仍然可以运行,但只在同一包内有效。


三、java主类和主方法的要求

​ Java 应用程序必须有一个主类(main class),并且这个类必须包含一个 main 方法作为程序的入口点。

1.主类
  • 主类可以是 public 类,也可以是默认访问修饰符的类,但必须包含 main 方法。
  • 如果希望程序可以从命令行运行,通常将主类定义为 public
2.主方法
  • main 方法的签名必须是:

    public static void main(String[] args)
    
  • 这个方法是 Java 虚拟机(JVM)执行程序时的入口点。


四、java中定义类
1.java的源文件
(1.文件扩展名

​ 每个 Java 源文件的扩展名必须是 .java。例如,MyClass.java 是一个有效的 Java 源文件名。

(2.内容
  • 类定义:Java 源文件通常包含一个或多个类的定义。
  • 方法:类内可以定义多个方法,这些方法包含具体的逻辑。
  • 字段:类可以有实例变量和静态变量。
  • 导入语句:可以包含 import 语句,用于引入其他类或包。
  • 注释:可以包含注释,以提高代码的可读性。
(3.示例
// 文件名: Example.java

import java.util.List; // 导入语句

public class Example { // 公共类
    private int value; // 字段

    public Example(int value) { // 构造函数
        this.value = value;
    }

    public void displayValue() { // 方法
        System.out.println("Value: " + value);
    }

    public static void main(String[] args) { // 主方法
        Example example = new Example(10);
        example.displayValue();
    }

若要在此源文件中定义其他类:

// 文件名: Example.java

import java.util.List; // 导入语句

public class Example { // 公共类
    private int value; // 字段

    public Example(int value) { // 构造函数
        this.value = value;
    }

    public void displayValue() { // 方法
        System.out.println("Value: " + value);
    }

    public static void main(String[] args) { // 主方法
        Example example = new Example(10);
        example.displayValue();

        // 创建其他类的实例
        AnotherClass another = new AnotherClass();
        another.sayHello();
    }
}

// 包私有类
class AnotherClass {
    public void sayHello() {
        System.out.println("Hello from AnotherClass!");
    }
}

// 另一个包私有类
class YetAnotherClass {
    // 类的内容
}
  • 在这个示例中,Example 是唯一的 public 类,文件名为 Example.java
  • AnotherClassYetAnotherClass 是包私有类,没有 public 修饰符。
  • 你可以在 main 方法中创建 AnotherClass 的实例,并调用它的方法。
(4.源文件中类的创建

在 Java 源文件中,如果有多个类,最多只能有一个类被声明为 public 类。

示例:

// 文件名: MyPublicClass.java
public class MyPublicClass {
    // 公共类的内容
}

class MyPrivateClass {
    // 包私有类的内容
}

class MyAnotherClass {
    // 另一个包私有类的内容
}
2.java不同文件中定义类
(1.文件命名
  • 公共类:如果一个类被声明为 public,那么它的文件名必须与类名完全匹配(包括大小写)。例如,public class MyClass 必须放在 MyClass.java 文件中。
  • 非公共类:如果类没有 public 修饰符(即是包私有类),则文件名可以是任意名称,但通常建议使用与类名相同的命名,以提高可读性。
(2.包的要求
  • 如果你将类定义在不同的文件中,并且这些类在同一个包内,则可以直接使用类名来引用它们。
  • 如果类在不同的包中,则需要使用 import 语句来导入它们。

示例:

假设有两个类 ExampleAnotherClass在同一个包中,它们分别在不同的文件中:

// 文件名: Example.java
public class Example {
    public static void main(String[] args) {
        AnotherClass another = new AnotherClass();
        another.sayHello();
    }
}
// 文件名: AnotherClass.java
public class AnotherClass {
    public void sayHello() {
        System.out.println("Hello from AnotherClass!");
    }
}
(3. 包的声明

如果你在不同的文件中定义类,且希望它们属于同一个包,可以在每个文件的顶部添加包声明。例如:

// 文件名: Example.java
package mypackage;

public class Example {
    // ...
}
// 文件名: AnotherClass.java
package mypackage;

public class AnotherClass {
    // ...
}
总结:
  • 其他类可以放在不同的文件中。
  • public 类的文件名必须与类名匹配,非公共类可以有任意文件名。
  • 如果类属于同一个包,可以直接使用类名;如果在不同包中,则需要使用 import 语句。

五、java源文件的编译与运行
1.编译后生成字节码文件

​ 在Java中,当你编译一个源代码文件时,Java编译器会将其转换为字节码文件。

源代码文件中或同一个包中,有几个类,就会生成几个字节码文件,且生成的字节码文件为:类名+.class

以下是关于编译后生成字节码文件的一些关键点:

(1. 字节码文件定义
  • 字节码是Java程序的中间表示形式,通常以.class文件的形式存储。这些文件包含了经过编译的Java代码,能够被Java虚拟机(JVM)理解和执行。
(2. 生成过程
  • 当你使用javac命令编译一个Java源文件(例如Speak.java)时,它会生成一个或多个.class文件。这些文件的名称与类名对应,例如Speak.classXiti4.class
(3. 字节码的特性
  • 平台独立性:字节码是与平台无关的,这意味着同一个字节码文件可以在任何安装了 JVM 的系统上运行。
  • 可移植性:由于字节码可以在任何支持JVM的环境中运行,Java被称为“一次编写,处处运行”(WORA)。
(4.字节码设计
  • 字节码文件包含了相关类的信息,如字段、方法、常量池等。这些信息使得JVM能够创建对象,调用方法,并管理内存。
  • 每个字节码指令对应于一个操作,JVM 将这些指令解释并执行。
(5. 字节码与Java源代码的关系
  • 字节码是源代码的编译结果,虽然可以通过反编译工具转回Java代码,但通常没有注释和原始代码的结构。
  • 字节码的生成过程会进行语法和语义检查,确保代码符合Java语言规范。
(6. 运行字节码
  • 字节码文件由JVM加载并执行。当你运行java Xiti4时,JVM会查找Xiti4.class文件,找到main方法并执行它。
2.使用Java解释器运行该程序的完整命令

在Java中,程序的入口点是main方法而不是类的访问修饰符。

(1.主类定义
  • 在Java中,主类是包含public static void main(String[] args)方法的类。一个类没有声明为public,但它仍然可以作为主类运行,尽管它在同一个包中。
(2.文件类别对比
  • 如果一个类被定义为public,则该类的名称必须与文件名相同。如果文件名与主类名称不匹配,编译将失败。
(3.执行程序
  • 使用java时,后面跟的类名是Java虚拟机(JVM)查找程序入口的类。只要该类包含main命令方法,JVM就能够启动程序。
(4.包裹和行程
  • 如果类不在任何包中(即在默认包中),并且在同一个源文件中定义了多个类,JVM仍然可以找到并执行包含main方法的类。
总结:

​ 即使类没有标记为public,只要它具有main方法,就可以通过java 类名命令来执行该程序。

示例:
public class Speak {
    void speakHello( ) {
          System.out.println("I'm glad to meet you!");                 
     } 

}
class Xiti4 {
    public static void main(String[ ] args) {
         Speak sp = new Speak( );
         sp.speakHello( );
    }
}

(1)上述源文件的名字应该是( Speak.java
(2)上述源文件编译后生成( 2)个字节码文件,这些字节码文件的名字是(Speak.class)和(Xiti4.class
(3)使用Java解释器运行该程序的完整命令是(java Xiti4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值