Java里的类与对象
2023-10-05 01:18:36
前言
在上一篇文章中,我们介绍了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程序。