如何在 Java 中创建自定义类?

javaobject oriented programmingprogramming

在 Java 中,面向对象编程的基本组成部分。它充当定义对象结构和行为的蓝图或模板。类包含数据(由字段或变量表示)和行为(由操作该数据的方法或函数表示)。

在 Java 中,自定义类是用户定义的类,允许您创建具有特定属性和行为的对象,这些属性和行为可根据您的应用程序要求量身定制。它充当创建该类类型的对象的蓝图或模板。自定义类将相关数据和操作封装到单个实体中,从而促进代码组织、可重用性和可维护性。

要在 Java 中创建自定义类,通常需要定义其结构、属性(也称为实例变量)和方法(执行操作或提供功能的函数)。

自定义类的关键组件

  • 类声明 - 类声明定义类的名称以及控制其可见性的任何访问修饰符(例如,public、private)。

语法


accessModifier class ClassName
  • 实例变量 - 这些变量表示对象的属性或特性。它们定义与类的每个实例相关联的状态或数据。实例变量通常在类级别声明,但特定于类的每个实例。

语法


accessModifier dataType variableName;
  • 构造函数 − 在使用 new 关键字 创建对象时,会自动调用该构造函数,并负责设置对象的初始状态。构造函数与其所属的类共享 相同的名称。并且可以采用参数来设置实例变量的初始值。

语法


accessModifier ClassName(parameters) { ... }
  • 方法 − 方法定义可对类的对象执行的行为和操作。它们封装代码并允许您执行操作或提供功能。方法可以具有返回类型(如果不返回任何内容,则为void)并且可以接受参数。

语法


accessModifier returnType methodName(parameters) { ... }
  • 访问修饰符 − 访问修饰符控制类、变量和方法的可见性和可访问性。Java 中的主要访问修饰符是public、privateprotected。它们决定其他类是否可以访问或修改类成员。

  • Getters 和 Setters − Getters 和 setters 是用于访问和修改私有实例变量值的特殊方法。

示例 1

以下程序演示了 Java 中的自定义类


//Java program that demonstrates about creation of custom class in java
class StudentReport {
   private String student_name;
   private int student_age;
   private double marksObtained;
   private char student_grade;
 
   public StudentReport(String name, int age, double marks) {
      this.student_name = name;
      this.student_age = age;
      this.marksObtained = marks;
   }
 
   public void calculateGrade() {
      if (marksObtained >= 90) {
         student_grade = 'A';
      } else if (marksObtained >= 80) {
         student_grade = 'B';
      } else if (marksObtained >= 70) {
         student_grade = 'C';
      } else if (marksObtained >= 60) {
         student_grade = 'D';
      } else {
         student_grade = 'F';
      }
   }
 
   public void displayInfo() {
      System.out.println("Name: " + student_name);
      System.out.println("Age: " + student_age);
      System.out.println("Marks: " + marksObtained);
      System.out.println("Grade: " + student_grade);
   }
}
 
public class Testing {
 
   public static void main(String args[]){
      System.out.println("STUDENT DETAILS");
      System.out.println("===============\n");
      StudentReport s1=new StudentReport("Hari",21,90);
      s1.calculateGrade();
      s1.displayInfo();
      System.out.println();
      StudentReport s2=new StudentReport("Syam",20,92);
      s2.calculateGrade();
      s2.displayInfo();
   }
}

输出

STUDENT DETAILS
===============
Name: Hari
Age: 21
Marks: 90.0
Grade: A

Name: Syam
Age: 20
Marks: 92.0
Grade: A

示例 2

以下程序演示了 Java 中的自定义类


class UserDetails {
   private String userName;
   private String userEmail;
   private String userPwd;

   public UserDetails(String username, String email, String password) {
      this.userName = username;
      this.userEmail = email;
      this.userPwd = password;
   }

   public void displayUserInfo() {
      System.out.println("Username: " + userName);
      System.out.println("Email: " + userEmail);
   }

   //此函数检查密码是否
   //与创建用户对象时传递的密码相同
   public boolean isPasswordCorrect(String inputPassword) {
      return userPwd.equals(inputPassword);
   }
}

public class Testing {

   public static void main(String args[]){
      System.out.println("USER DETAILS");
      System.out.println("===============\n");
      UserDetails u1=new UserDetails("Hari","abc@gmail.com","abc123");
      u1.displayUserInfo();
      System.out.println("Password Matched:"+u1.isPasswordCorrect("abc123"));
   }
}

输出

USER DETAILS
===============
Username: Hari
Email: abc@gmail.com
Password Matched:true

自定义类的优点

  • 模块化和代码组织 - 自定义类允许您将相关数据和功能封装到单个实体中。这促进了代码模块化和组织,使您的代码更具可读性。

  • 可扩展性 - 自定义类可以扩展和子类化以添加或修改功能。这允许您在现有类的基础上构建,继承其属性和方法,并对其进行自定义以满足特定需求。

自定义类的缺点

  • 增加复杂性 - 使用自定义类会给您的代码库带来额外的复杂性。您需要定义和管理类结构,处理不同类之间的交互,并确保正确的数据流。

  • 开销和内存使用情况 − 自定义类的每个实例都需要分配内存,这可能会导致内存使用量增加,尤其是在处理大量对象时。

结论

在本文中,我们了解了如何在 Java 中创建自定义类。自定义类在 Java 开发中被广泛使用,并提供了许多好处,但应有效地设计、使用和维护它们,以最大限度地发挥其优势并最大限度地减少潜在的缺点。

总体而言,自定义类提供了一种组织构造代码、促进代码可重用性以及在 Java 中启用面向对象编程范式的方法。


相关文章