Java自定义类:打造属于自己的编程世界-LMLPHP

目录

一、自定义类示例

二、隐式参数与显式参数

三、封装的优点


        自定义类是Java中最基本、也是最重要的组成部分之一,使用者可以根据需求创建自己的数据类型,从而更加高效地构建程序。

一、自定义类示例

        首先,我们来了解一下什么是自定义类。在Java中,类是一种模板或蓝图,可以用来生成具有一定属性和行为的对象。不同于预定义好的类(例如String、Integer等),自定义类是由程序员按需求自行进行定义和实现。自定义类具有高度可定制性、可重用性以及可维护性。这样就可以有效地提高编程效率,同时减少代码冗余,便于管理

接下来是一个简单的Java自定义类示例:

public class Student { 
    private String name; 
    private int age; 
 
    public Student(String name, int age) { 
        this.name = name; 
        this.age = age; 
    } 
 
    public String getName() { 
        return name; 
    } 
 
    public void setName(String name) { 
        this.name = name; 
    } 
 
    public int getAge() { 
        return age; 
    } 
 
    public void setAge(int age) { 
        this.age = age; 
    } 

    public void displayStudentInfo() {
        System.out.println("姓名:" + this.name + ",年龄:" + this.age);
    } 
}

        在上述示例中,定义了一个名为Student的类,并包含了两个私有变量:name(姓名)和age(年龄)。使用构造函数来初始化对象的属性,可以看到,我们使用了this关键字代表当前对象,以保证赋值操作的正确性。除此之外,该类还定义了四个公共方法用于获取或设置对象的属性。

当我们实例化一个Student对象时,就可以使用该对象的公共方法对属性进行操作:

Student s = new Student("Tom", 18); // 实例化对象
System.out.println(s.getName());   // 获取对象的姓名属性
s.setAge(19);                       // 设置对象的年龄属性
s.displayStudentInfo();             // 输出所有属性

二、隐式参数与显式参数

方法会操作对象并访问它们的实例字段。例如,以下方法:

public void raiseSalary(double dyPercent){
    double raise = salary * byPercent / 100;
    salary += raise;
}

将调用这个方法的对象的salary实例字段设置为一个新值。考虑下面这个调用:

number007.raiseSalary(5);

其作用是将number007.salary字段的值增加5%,具体地说,这个调用将执行以下指令:

double raise = number007.salary * byPercent / 100;
number007.salary += raise;

        raiseSalary方法有两个参数。第一个参数称为隐式(implicit)参数,是出现在方法名前的Employee类型的对象。第二个参数是位于方法名后面括号中的数值,这是一个显式(explicit)参数

在每个方法中,关键字this指示隐式参数。如果愿意,可以改写raiseSalary方法:

public void raiseSalary(double dyPercent){
    double raise = this.salary * byPercent / 100;
    this.salary += raise;
}

这样可以将实例字段与局部变量明显的区分开来。

三、封装的优点

在面向对象编程中,封装性是一种将数据和代码保护起来的机制,具有许多优点。

1、隐藏内部实现

        封装允许类隐藏其内部实现细节,仅向外部暴露必要接口。这样的好处在于,可以使对象更易于使用也更加安全,降低了程序员对类实现的繁琐程度,并且可以防止用户错误地操作对象并导致程序崩溃。

2、简化复杂性

        在面向对象编程中,一个复杂的系统往往由多个类组成,通过封装可以使系统垂直划分,即将系统的各个部分分别定义为相互独立的类。当对象分离时,系统变得更容易理解,因为每个对象都可以被设计成负责一项特定的任务,并提供公共接口简化调用过程。这种简化构造在理解、修改和测试程序时都非常有帮助。

3、提高代码的可重用性和可扩展性

        封装可以消除类内部实现与其他代码之间的依存性,从而增强了灵活性和可扩展性。封装的主要目标是最大限度地降低与其他代码部分发生联系的概率。这使得对象的行为可以独立于其他对象或整个程序的修改,从而增强了代码的可重用性和可维护性。如果要更改根据某个类创建的对象的任何属性或方法,仅需调整与该类相关的部分,使得编程变得更加高效也更有利于团队协作。

4、保护数据安全

        封装可以通过对数据进行访问控制来提供信息隐藏。这意味着对象只能用当前类和其后代类中定义的方式处理数据。当一个类允许修改其成员变量被外部程序直接处理时,非常容易出现潜在的数据不一致,导致代码出现bug。使用封装可以有效地保护数据,并且只通过更好设计的getter和setter方法来完成处理,防止用户做出对数据库影响不确定的操作。

        总之,封装是面向对象编程的重要特征之一,它的优点包括:隐藏内部实现、简化复杂性、提高代码的可重用性和可扩展性,以及保护数据安全。受益于封装机制,程序员们能够更加轻松地开发出更加健壮和可靠的代码,从而减少程序出现故障的可能性。

05-21 03:18