当前位置: 首页 > news >正文

何为“类”?(Java基础语法)

类 (Class)

🤔 OS:初学时,我们知道要把代码写成一步步的指令。但很快就会发现,很多指令需要被反复执行,非常繁琐。这时,“类”就像游戏里的“宏功能”,能把一套复杂的操作打包成一个“大招”,大大提升了我们的开发效率和代码质量。

  • 官方术语:类是一个模板,它描述了一类对象的共同属性 (attributes) 和行为 (behaviors)

  • 💡 个人理解 :
    类,就是把解决某个问题的一套“方法”和所需“变量”,封装成一个“类”,以后直接用这个“类”就行,不用再一步步重复操作。

  • 🎯 作用: 类的主要作用就是作为创建对象的模板。我们通过设计的类,来确保所有根据它创建出的对象,都是行为正确、数据安全的。


举个例子:从“搓招”到“一键发招”

在玩一个动作游戏时,一个新手玩家需要按顺序按 A(轻拳)、A(轻拳)、→(前)、B(重拳)才能打出一个简单的“连招”。这个过程不仅慢,还容易按错。

“类”就相当于一个“宏功能”或“自定义技能”。

我们可以设计一个,它内部封装好了这一整套固定的按键顺序和逻辑。

以后,我们只需要创建一个这个技能的对象,然后调用它一个方法,角色就能瞬间、准确地打出这套连招。

  • 类 -> (创建) -> 对象 -> (调用) -> 方法


一、 如何创建(定义)一个类?

创建类,就是编写它的“设计图”。这遵循一个固定的语法结构。

基本语法

codeJava

[修饰符] class 类名 {// 1. 成员变量 (属性)//    用来描述这类对象的状态// 2. 构造方法 (Constructor)//    用来初始化新创建的对象// 3. 成员方法 (方法)//    用来描述这类对象的行为}
组成部分详解
  1. [修饰符] (Modifier)

    • 最常用的就是 public。public class MyClass 意味着这个类可以被项目中的任何其他代码访问。

    • 如果不写(class MyClass),则为默认的包访问权限。

    • 对于初学者,一律使用 public 即可。

  2. class 关键字

    • 这是Java的关键字,固定写法,告诉编译器你正在定义一个类。

  3. 类名 (Class Name)

    • 你为这个类起的名字。

    • 命名规范: 必须遵循大驼峰命名法 (UpperCamelCase),即每个单词的首字母都大写,例如 Student, Car, ArrayList。

    • 文件名必须和 public 类的类名完全一致(包括大小写),例如 Student 类必须保存在 Student.java 文件中。

  4. { ... } (类体)

    • 大括号内是类的所有内容,包括下面要讲的三个核心组成部分。


二、 构造方法 (Constructor) - 类的“建造者”

构造方法是一个非常特殊的方法,它在你使用 new 关键字创建对象时被自动调用。

构造方法的核心规则
  1. 方法名必须与类名完全相同。这是辨别它的铁律。

  2. 没有返回值类型。连 void 都不需要写。

  3. 主要作用是初始化成员变量,为新生的对象赋予初始状态。

构造方法的组成

[修饰符] 构造方法名([参数列表]) { // 方法体 }

  • 修饰符: 通常是 public,与类的修饰符保持一致。

  • 方法名: 必须是类名。

  • 参数列表: 括号内的部分,可以为空,也可以包含一个或多个参数。

  • 方法体: {} 内的代码,用于执行初始化逻辑。


三、 无参构造方法 vs. 有参构造方法

一个类可以提供多种不同的“建造方案”,这就是通过构造方法重载 (Overloading) 实现的。最常见的就是提供“无参”和“有参”两种版本。

1. 无参构造方法 (No-Argument Constructor)
  • 写法: 构造方法的参数列表是空的 ()。

  • 作用: 提供一种快速、便捷的创建对象的方式,通常会为对象的属性赋予一个合理的默认值

  • 示例:

    codeJava
    public class Student {private String name;private int age;// 这就是无参构造方法public Student() {System.out.println("正在调用无参构造方法...");this.name = "匿名"; // 赋予默认名字this.age = 18;     // 赋予默认年龄}
    }
  • 如何调用:

    codeJava
    // new 后面跟的括号是空的,就会自动匹配并调用无参构造方法
    Student stu1 = new Student(); 
    // stu1 对象一生下来,name就是"匿名",age就是18
  • ⭐ 特殊规则:默认构造方法

    • 如果你一个构造方法都不写,Java编译器会自动为你提供一个看不见的、public的、方法体为空的无参构造方法。

      codeJava
      // 你只写了这样
      public class Dog {} // 编译器会自动帮你变成这样
      public class Dog {public Dog() {} // 自动添加
      }// 所以你依然可以这样创建对象:
      Dog myDog = new Dog();
    • 重要一旦你手动写了任何一个构造方法(无论是有参还是无参),编译器就“罢工”了,不再提供任何默认构造方法。

2. 有参构造方法 (Parameterized Constructor)
  • 写法: 构造方法的参数列表 () 中包含一个或多个参数。

  • 作用: 提供一种定制化的创建对象的方式,允许在 new 的那一刻,就通过参数将外部数据传递进来,对新对象进行精确的初始化。

  • 示例:

    codeJava
    public class Student {private String name;private int age;// 无参构造...// 这就是有参构造方法public Student(String name, int age) {System.out.println("正在调用有参构造方法...");// 使用 this 关键字,将参数的值赋给成员变量this.name = name;this.age = age;}
    }
  • 如何调用:

    codeJava
    // new 后面括号里的参数,其类型、个数、顺序
    // 必须和某个有参构造方法的参数列表完全匹配
    Student stu2 = new Student("张三", 20);
    // stu2 对象一生下来,name就是"张三",age就是20

四、 完整示例与总结

codeJava

// Student.java
public class Student {// 1. 成员变量 (属性)private String name;private int age;// 2. 构造方法 (多种创建方案)// 无参public Student() {this.name = "新生";this.age = 18;}// 有参public Student(String name, int age) {this.name = name;this.age = age;}// 3. 成员方法 (行为)public void introduce() {System.out.println("大家好,我叫 " + this.name + ",今年 " + this.age + " 岁。");}
}// Test.java (使用Student类)
public class Test {public static void main(String[] args) {// 调用无参构造,创建默认学生Student defaultStudent = new Student();defaultStudent.introduce(); // 输出: 大家好,我叫 新生,今年 18 岁。// 调用有参构造,创建定制学生Student customStudent = new Student("李四", 22);customStudent.introduce(); // 输出: 大家好,我叫 李四,今年 22 岁。}
}

总结:

  • 创建类就是定义其框架 (public class ...)、属性 (成员变量) 和方法 (成员方法)。

  • 构造方法是类中一个特殊部分,负责初始化 new 出来的新对象。

  • 无参构造提供默认创建方式,有参构造提供定制化创建方式。

  • 一个类可以有多个构造方法(重载),new 时传入的参数列表决定了调用哪一个。

http://www.dtcms.com/a/435966.html

相关文章:

  • 德城区建设局网站建设部特殊工种查询网站
  • 如何做优化网站的原创性文章济南移动互联网开发
  • 建设部标准定额研究所网站c2c网站建设方案
  • 济南公司做网站的价格搜索引擎内部优化
  • 网站有效内容的宣传及推广关于做网站的ppt
  • wap网站 微信登录工商银行在线登录入口
  • 没有网站可以icp备案wordpress回到旧版编辑器
  • PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
  • 公司主网站百度收录大量网站之类的信息crm客户管理系统哪个好
  • [嵌入式] U-Boot 环境变量深度解析:从 QSPI 到 eMMC 的 Linux 启动完整指南
  • 左右左布局网站建设适合新手的网站开发
  • 上海网站建设知识 博客wordpress 留言插件
  • 网站模板 英文wordpress文章存储位置
  • 麻城建设网站什么腾讯网站做任务能刷q币
  • 绿色网站模板大全品牌网站建设 d磐石网络
  • 企业网站的可信度建设包括厦门有家装饰
  • 容器化安装新玩法:从镜像革命到边缘原生的技术突破
  • 旅游网站设计asp怎样做网站信箱
  • 【AI论文】基于分位数优势估计的熵安全推理方法
  • win2008 iis配置网站海城网站制作建设
  • 竞馨门户网站开发大型网页设计
  • 南京做网站的公司排名wordpress说有图片居中对齐
  • zabbix安装及基本使用
  • NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.
  • 浙江省城乡建设厅网站国医堂网站平台建设
  • php做网站需要什么技术企业邮箱登录入口官网ww
  • 自己用电脑做虚拟机怎么建网站上海做网站的故事哪家好
  • 阿里服务器怎么做网站服务器wordpress新闻动态不显示作者
  • 跨境电商网站建设流程图网站只能用ip访问网站
  • 英语学习-Saints044-1