java基础(4)public class 和class的区别及注意事项

简介: 本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。

首先先熟悉一下一个类的基本组成:

// 类名首字母大写
public class TestJava01 {
   
    /**
     * public 公共的 
     * static 静态的 
     * void 空 main 表示方法名 固定的 
     * (String[] args) 是一个main方法的形参
     * 每行代码写完 必须以分号;结尾
     */
    public static void main(String[] arg) {
   
        // 打印 字符串 必须用双引号 包裹
        System.out.println("这是我的第一个java文件");
        System.out.println("heoolword");
        // 不能写在类体里面
        System.out.println("zjq");
    }
}

新建一个问价K.java

在这个里面我们可以写多个类:

class B {
   
    public static void main(String[] args) {
   
        System.out.println("B");
    }
}

class C {
   
    public static void main(String[] args) {
   
        System.out.println("C");
    }
}

class D {
   
    public static void main(String[] args) {
   
        System.out.println("D");
    }
}

我们是使用javac对这个K.java文件进行编译:

javac K.java

在这里插入图片描述
完成编译后出现出现三个文件,分别是B.class、C.class、D.class;
这是三个编译好的类,我们直接运行B这个类

java B
在这里插入图片描述
成功的将B这个类中的System.out.println输出;其他两个类似;

在这里插入图片描述

public class:

一个java文件中只能有一个public class ,并且类名必须是文件的名字:
在这里插入图片描述
我们的源文件的名字是K,但是我们建立了一个F的public类,这样编辑器就开始提醒了,
只有这样才不会出现问题:

public class K{
   
    public static void main(String[] args){
   
        System.out.println("K");
    }
}

public类名和源文件名字一致;

注意事项:


 * 一个java源文件中可以定义多个class
 * 一个源文件中不一定有publicclasspublicclass不是必须的)
 * 一个class回生成对应的一个class编码文件
 * public class 类名必须和文件名字一致
 * 一个java源文件中定义公开的类的话,publicclass只能有一个,
 * 并且该类名名称必须和java源文件文件名称一致
 * 一个java文件中只能有一个public类,并且类名要和源文件的名字一样
 * 
 * 每一个class中都可以编写main方法,都是可以设定程序的入口,
 * 每一个类都需要有一个main方法 不然运行java B的时候会出现你没有入口函数的报错
目录
相关文章
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
93 14
|
1月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
30 1
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
75 8
|
2月前
|
Java 编译器 Maven
Java“class file contains wrong class”解决
当Java程序运行时出现“class file contains wrong class”错误,通常是因为类文件与预期的类名不匹配。解决方法包括:1. 确保类名和文件名一致;2. 清理并重新编译项目;3. 检查包声明是否正确。
74 3
|
2月前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
3月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
14天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
68 17
|
25天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
10天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
27天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。