0

0

在Java中如何定义一个类_Java类定义基础语法解析

P粉602998670

P粉602998670

发布时间:2026-02-03 14:13:02

|

881人浏览过

|

来源于php中文网

原创

Java类定义需遵守修饰符顺序、命名规范及编译器硬性要求:public类名须与文件名一致且唯一;类体不可含执行语句;无显式构造器时默认插入public无参构造器,一旦定义则消失;子类构造器默认调用super()。

在java中如何定义一个类_java类定义基础语法解析

Java 中定义一个类,核心就是用 class 关键字 + 类名 + 一对大括号。但真正写对、写稳,得注意修饰符顺序、命名规范、以及编译器对结构的硬性要求。

类声明必须包含 public 或默认访问权限

如果类被声明为 public,则文件名必须与类名完全一致(包括大小写),且一个 .java 文件里最多只能有一个 public 类。

  • 合法:
    public class User { }
    → 文件必须命名为 User.java
  • 合法:
    class Helper { }
    → 文件可任意命名(如 Utils.java),但该类在包外不可见
  • 非法:
    public class User { }
    → 类名首字母小写不违反语法,但违反 Java 命名约定;更严重的是若文件叫 User.java,编译直接报错 class user is public, should be declared in a file named user.java

类体里不能直接写执行语句

类定义内部只允许成员变量、方法、构造器、初始化块、嵌套类等结构。任何试图“直接执行”的代码(比如调用 System.out.println())都会导致编译失败。

  • 错误写法:
    class Log {
        System.out.println("init"); // 编译报错:非法的表达式开始
        void print() { }
    }
  • 正确写法(移到实例/静态初始化块中):
    class Log {
        {
            System.out.println("instance init");
        }
        static {
            System.out.println("static init");
        }
        void print() { }
    }

构造器不是必须显式写出,但隐式规则很关键

如果你没写任何构造器,编译器会自动插入一个无参、public、空体的默认构造器。但只要你写了任一构造器(哪怕带参数),这个默认构造器就立刻消失。

Smart Picture
Smart Picture

Smart Picture 智能高效的图片处理工具

下载

立即学习Java免费学习笔记(深入)”;

  • 没写构造器 → 可以 new Log()
  • 写了 Log(String name) → 再用 new Log() 就编译失败,除非你手动补上无参构造器
  • 子类构造器第一行默认调用 super(),如果父类删掉了无参构造器,子类又没显式调用 super(...),就会编译报错

类定义看着简单,但修饰符组合、初始化时机、构造器继承链这几个点,是新人最容易掉坑的地方。尤其在写工具类或继承体系时,漏掉 public、误删无参构造器、或在类体里写执行语句,都会让编译器立刻拒绝合作。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

543

2023.08.02

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

511

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

17

2025.12.06

c语言中/相关合集
c语言中/相关合集

本专题整合了c语言中/的用法、含义解释。阅读专题下面的文章了解更多详细内容。

0

2026.02.03

漫蛙漫画网页版入口与正版在线阅读 漫蛙MANWA官网访问专题
漫蛙漫画网页版入口与正版在线阅读 漫蛙MANWA官网访问专题

本专题围绕漫蛙漫画(Manwa / Manwa2)官网网页版入口进行整理,涵盖漫蛙漫画官方主页访问方式、网页版在线阅读入口、台版正版漫画浏览说明及基础使用指引,帮助用户快速进入漫蛙漫画官网,稳定在线阅读正版漫画内容,避免误入非官方页面。

0

2026.02.03

Yandex官网入口与俄罗斯搜索引擎访问指南 Yandex中文登录与网页版入口
Yandex官网入口与俄罗斯搜索引擎访问指南 Yandex中文登录与网页版入口

本专题汇总了俄罗斯知名搜索引擎 Yandex 的官网入口、免登录访问地址、中文登录方法与网页版使用指南,帮助用户稳定访问 Yandex 官网,并提供一站式入口汇总。无论是登录入口还是在线搜索,用户都能快速获取最新稳定的访问链接与使用指南。

2

2026.02.03

Java 设计模式与重构实践
Java 设计模式与重构实践

本专题专注讲解 Java 中常用的设计模式,包括单例模式、工厂模式、观察者模式、策略模式等,并结合代码重构实践,帮助学习者掌握 如何运用设计模式优化代码结构,提高代码的可读性、可维护性和扩展性。通过具体示例,展示设计模式如何解决实际开发中的复杂问题。

2

2026.02.03

C# 并发与异步编程
C# 并发与异步编程

本专题系统讲解 C# 异步编程与并发控制,重点介绍 async 和 await 关键字、Task 类、线程池管理、并发数据结构、死锁与线程安全问题。通过多个实战项目,帮助学习者掌握 如何在 C# 中编写高效的异步代码,提升应用的并发性能与响应速度。

0

2026.02.03

Python 强化学习与深度Q网络(DQN)
Python 强化学习与深度Q网络(DQN)

本专题深入讲解 Python 在强化学习(Reinforcement Learning)中的应用,重点介绍 深度Q网络(DQN) 及其实现方法,涵盖 Q-learning 算法、深度学习与神经网络的结合、环境模拟与奖励机制设计、探索与利用的平衡等。通过构建一个简单的游戏AI,帮助学习者掌握 如何使用 Python 训练智能体在动态环境中作出决策。

2

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.2万人学习

C# 教程
C# 教程

共94课时 | 8.4万人学习

Java 教程
Java 教程

共578课时 | 56.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号