Java从入门到精通——面向对象编程基础
引言
Java是一种面向对象的编程语言,广泛应用于各个领域。本文将介绍Java的面向对象编程基础,包括类、对象、封装、继承和多态等概念。我们将通过代码示例来演示这些概念的应用,帮助读者理解和掌握面向对象编程的基本原理。
类和对象
在Java中,类是对象的模板,用于定义对象的属性和行为。对象是类的实例,具有类定义的属性和行为。
类的定义
public class Circle {
private double radius; // 半径
// 构造方法
public Circle(double radius) {
this.radius = radius;
}
// 计算面积
public double getArea() {
return Math.PI * radius * radius;
}
// 计算周长
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
上述代码定义了一个名为Circle
的类,表示一个圆形对象。该类具有一个私有的radius
属性,以及计算面积和周长的方法。
对象的创建和使用
Circle circle = new Circle(5.0); // 创建Circle对象,半径为5.0
double area = circle.getArea(); // 调用对象的方法计算面积
double perimeter = circle.getPerimeter(); // 调用对象的方法计算周长
System.out.println("Area: " + area);
System.out.println("Perimeter: " + perimeter);
上述代码创建了一个Circle
对象,并调用对象的方法计算面积和周长。结果将被输出到控制台。
封装
封装是面向对象编程的重要原则之一,通过封装可以隐藏对象的内部实现细节,只暴露必要的接口给外部使用。
访问修饰符
Java提供了四种访问修饰符:private
、public
、protected
和默认(不写修饰符)。这些修饰符用于控制类的成员(属性和方法)的可见性。
private
:表示私有成员,只能在类内部访问。public
:表示公共成员,可以在任何地方访问。protected
:表示受保护的成员,可以在同一个包内以及子类中访问。- 默认(不写修饰符):表示包级可见,只能在同一个包内访问。
封装示例
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age < 0 || age > 150) {
throw new IllegalArgumentException("Invalid age");
}
this.age = age;
}
}
上述代码定义了一个名为Person
的类,表示一个人的对象。该类具有私有的name
和age
属性,以及对应的访问器和修改器方法。
Person person = new Person();
person.setName("John");
person.setAge(25);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
上述代码创建了一个Person
对象,并设置其姓名和年龄。通过访问器方法可以获取对象的属性值。
继承
继承是面向对象编程的另一个重要特性,它允许一个类派生出子类,并继承父类的属性和方法。
继承示例
public class Student extends Person {
private String major;
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
上述代码定义了一个名为Student
的类,表示一个学生对象。该类继承自Person
类,并添加了一个major
属性。
Student student = new Student();
student.setName("Alice");
student.setAge(20);
student.setMajor