返回

Java里的类与对象

Android

前言

在上一篇文章中,我们介绍了Java虚拟机的基本概念,包括运行时数据结构和运行时逻辑控制。我们还介绍了如何在Java虚拟机上运行简单的HelloWorld程序。

这篇文章将介绍Java中的类和对象的概念,并展示如何使用它们来构建程序。我们将探讨Java中的继承、封装和多态性等高级概念。

类和对象

类是Java中的一種数据类型,用于表示具有相同属性和行为的一组对象。对象是类的实例,具有类的所有属性和行为。

例如,我们可以定义一个类来表示一个学生,这个类可能包含以下属性:姓名、年龄、学号等。这个类还可能包含以下行为:学习、考试、毕业等。

我们可以使用这个类来创建多个学生对象,每个对象都具有自己的属性值,例如:

Student student1 = new Student();
student1.setName("张三");
student1.setAge(18);
student1.setStudentNumber("123456");

Student student2 = new Student();
student2.setName("李四");
student2.setAge(19);
student2.setStudentNumber("654321");

继承

继承是Java中的一种重要机制,允许一个类从另一个类继承属性和行为。

例如,我们可以定义一个GraduateStudent类来表示研究生,这个类可以从Student类继承属性和行为,并添加一些研究生特有的属性和行为,例如:

public class GraduateStudent extends Student {
  private String major;
  private String thesisTitle;

  public GraduateStudent(String name, int age, String studentNumber, String major, String thesisTitle) {
    super(name, age, studentNumber);
    this.major = major;
    this.thesisTitle = thesisTitle;
  }

  public String getMajor() {
    return major;
  }

  public void setMajor(String major) {
    this.major = major;
  }

  public String getThesisTitle() {
    return thesisTitle;
  }

  public void setThesisTitle(String thesisTitle) {
    this.thesisTitle = thesisTitle;
  }
}

封装

封装是Java中的一种重要机制,允许将数据的实现细节隐藏起来,只暴露必要的接口。

例如,我们可以将Student类的属性和行为封装起来,只暴露一些必要的接口,例如:

public class Student {
  private String name;
  private int age;
  private String studentNumber;

  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 String getStudentNumber() {
    return studentNumber;
  }

  public void setStudentNumber(String studentNumber) {
    this.studentNumber = studentNumber;
  }
}

这样,我们就可以在其他类中使用Student类,而不需要知道它的实现细节。

多态性

多态性是Java中的一种重要机制,允许我们使用一个接口来调用不同类的对象。

例如,我们可以定义一个Person接口,它包含一些基本的方法,例如:

public interface Person {
  String getName();
  int getAge();
}

然后,我们可以定义Student类和GraduateStudent类来实现这个接口:

public class Student implements Person {
  private String name;
  private int age;
  private String studentNumber;

  @Override
  public String getName() {
    return name;
  }

  @Override
  public int getAge() {
    return age;
  }

  // ...
}

public class GraduateStudent implements Person {
  private String name;
  private int age;
  private String studentNumber;
  private String major;
  private String thesisTitle;

  @Override
  public String getName() {
    return name;
  }

  @Override
  public int getAge() {
    return age;
  }

  // ...
}

现在,我们可以使用Person接口来调用Student对象和GraduateStudent对象,而不需要知道它们的具体类型:

Person person = new Student();
System.out.println(person.getName()); // 输出:张三

person = new GraduateStudent();
System.out.println(person.getName()); // 输出:李四

结论

本文介绍了Java中的类和对象的概念,并展示了如何使用它们来构建程序。我们探讨了Java中的继承、封装和多态性等高级概念。

这些概念对于理解Java程序的结构和行为非常重要。掌握这些概念将有助于您编写出更健壮、更可维护的Java程序。