Java 类和对象

时间:2024-11-10 07:36:20

Java 是当今最具影响力和领先的编程语言之一,这得益于其面向对象的特性。Java 的组织方式使得你在其中编写的每一样东西都成为类或对象。

什么是类?

类在 Java 中是一个蓝图或模板,用于描述对象的状态和行为。它是一个容器,存储数据成员(变量)和方法(函数)。这些数据成员和方法对特定包中的所有对象都是通用的。

类的组成部分:

  • 访问修饰符publicprivateprotecteddefault
  • 类名:根据预定义的命名约定,由程序员决定的类的名称。
  • 类体:主要包含可执行语句。

除了这些,类还可以包括关键字:

  • super:如果你使用超类
  • implements:如果你从同一个类继承成员、方法和实例
  • interface:如果你从不同的类继承成员、方法和实例

类的类型

在 Java 中,类可以分为两种类型:

  • 内置类:内置类是随 Java 开发工具包 (JDK) 提供的预定义类。我们也可以称这些内置类为库。一些内置类的例子包括:

    • java.lang.System
    • java.util.Date
    • java.util.ArrayList
    • java.lang.Thread
  • 用户定义类:用户定义类是用户在实时编程环境中定义和操作的类。用户定义类可以分为三种类型:

    • 具体类:用户定义的标准类,存储方法和数据成员。
      class Con {
          // 类体
      }
      
    • 抽象类:与具体类类似,但需要用 abstract 关键字定义。如果希望实例化抽象类,则应包含一个抽象方法。否则,只能继承。
      abstract class AbstClas {
          // 方法
          abstract void demo();
      }
      
    • 接口:接口类似于类,但不同之处在于类描述了对象的态度和行为,而接口包含类实现的行为。这些接口只包含方法的签名,而不包含实际的方法。
      public interface Demo {
          public void signature1();
          public void signature2();
      }
      
      public class Demo2 implements Demo {
          public void signature1() {
              // 实现
          }
      
          public void signature2() {
              // 实现
          }
      }
      

如何创建类

你可以使用以下语法在 Java 中定义一个典型的类:

<访问修饰符> class <类名> {
    // 类体
}

示例:

public class Student {
    String name;
    int rollno;
    String section;

    void study() {
    }

    void write() {
    }

    void play() {
    }
}

创建类的规则

当你在 Java 中使用类时,必须遵守以下规则:

  1. 必须使用 class 关键字声明类

    • 每个类的定义必须以 class 关键字开始。
  2. 每个类名应以大写字母开头

    • 类名的第一个字母应为大写。如果类名包含多个单词,应使用驼峰命名法(Camel Case),即每个单词的首字母大写,例如 MyFirstClass
  3. 一个 Java 文件可以包含任意数量的默认类,但不能包含超过一个公共类

    • 一个 .java 文件可以包含多个类,但只能有一个类是 public 类。并且,public 类的名称必须与文件名相同。
  4. 类名中不应使用特殊字符

    • 类名只能包含字母、数字和下划线(_),但不能以数字开头。
  5. 可以通过在类前面写多个接口名称并用逗号分隔来实现多个接口

    • 一个类可以实现多个接口,接口名称之间用逗号分隔。例如:
      public class MyClass implements Interface1, Interface2, Interface3 {
          // 类体
      }
      
  6. 一个 Java 类只能继承一个父类

    • Java 不支持多继承,即一个类只能继承一个父类。但是,可以通过实现多个接口来达到类似的效果。例如:
      public class SubClass extends SuperClass {
          // 类体
      }
      

示例

以下是一个简单的 Java 类的示例,展示了上述规则的应用:

// 正确的类名使用驼峰命名法
public class MyFirstClass implements Runnable, Serializable {

    // 类体
    private String name;

    public MyFirstClass(String name) {
        this.name = name;
    }

    @Override
    public void run() {
        System.out.println("Running: " + name);
    }

    // 其他方法
    public void display() {
        System.out.println("Displaying: " + name);
    }

    public static void main(String[] args) {
        MyFirstClass obj = new MyFirstClass("Example");
        obj.display();
        Thread t = new Thread(obj);
        t.start();
    }
}

什么是 Java 对象?

对象是面向对象编程(OOP)范式中最基本的单位。它表示现实世界中的实体,并通过调用方法来操纵这些实体。在 Java 中,对象由以下三个主要部分组成:

  1. 标识

    • 定义:这是用户赋予的唯一名称,允许对象与其他项目中的对象进行交互。
    • 示例:学生的姓名(例如,"张三")。
  2. 行为

    • 定义:对象的行为是在类中声明的方法。这些方法定义了对象可以执行的操作,使对象能够与其他对象进行交互。
    • 示例:学习、玩耍、写作。这些行为可以对应于类中的方法,例如:
      void study() {
          System.out.println("正在学习");
      }
      
      void play() {
          System.out.println("正在玩耍");
      }
      
      void write() {
          System.out.println("正在写作");
      }
      
  3. 状态

    • 定义:对象的状态是由类中的变量(也称为属性或字段)表示的。这些变量存储了对象的具体信息,反映了对象的当前状况。
    • 示例:班级、学号、百分比。这些状态可以对应于类中的变量,例如:
      String className;
      int rollNumber;
      double percentage;
      

示例

以下是一个具体的示例,展示了如何在 Java 中定义一个类并创建一个对象:

// 定义一个 Student 类
public class Student {
    // 状态
    String name;
    String className;
    int rollNumber;
    double percentage;

    // 构造方法
    public Student(String name, String className, int rollNumber, double percentage) {
        this.name = name;
        this.className = className;
        this.rollNumber = rollNumber;
        this.percentage = percentage;
    }

    // 行为
    void study() {
        System.out.println(name + " 正在学习");
    }

    void play() {
        System.out.println(name + " 正在玩耍");
    }

    void write() {
        System.out.println(name + " 正在写作");
    }

    // 主方法,用于测试
    public static void main(String[] args) {
        // 创建一个 Student 对象
        Student student = new Student("张三", "高一", 101, 85.5);

        // 调用对象的方法
        student.study();
        student.play();
        student.write();

        // 打印对象的状态
        System.out.println("学生姓名: " + student.name);
        System.out.println("班级: " + student.className);
        System.out.println("学号: " + student.rollNumber);
        System.out.println("百分比: " + student.percentage);
    }
}

输出

运行上述代码将产生以下输出:

张三 正在学习
张三 正在玩耍
张三 正在写作
学生姓名: 张三
班级: 高一
学号: 101
百分比: 85.5

如何在 Java 中创建对象?

如前所述,类是任何对象的蓝图。因此,一旦声明了类,只需要实例化它即可创建对象。创建对象涉及三个阶段:

  • 声明
  • 实例化
  • 初始化

示例:

public class Student {
    public Student(String name) {
        System.out.println("传递的参数是: " + name);
    }

    public static void main(String[] args) {
        Student myStudent = new Student("Steven");
    }
}

// 输出:
// Steven

Java 类和对象的关键区别

类和对象之间的关键区别如下:

    • 类是创建对象的蓝图。
    • 类是一个逻辑实体。
    • 使用的关键词是 class
    • 类只设计或声明一次。
    • 声明类时,计算机不会分配内存。
  • 对象

    • 对象是类的副本。
    • 对象是一个物理实体。
    • 使用的关键词是 new
    • 可以使用一个类创建任意数量的对象。
    • 声明对象时,计算机分配内存。

总结

  • :定义了对象的结构和行为,是创建对象的模板。
  • 对象:是类的实例,具有具体的属性值和行为。