Java面向对象:从入门到精通
引言
Java是一种面向对象的编程语言,具有广泛的应用领域和强大的功能。本文将介绍面向对象编程的基本概念和原则,并提供一些Java面向对象的题目及其答案,帮助读者更好地理解和运用Java的面向对象特性。
面向对象基础
面向对象编程是一种将现实世界的事物抽象成对象,并通过对象之间的交互实现功能的编程范式。它有三个基本概念:封装、继承和多态。
封装
封装是将数据和行为封装在一个对象中,只对外提供必要的接口,隐藏内部的实现细节。这样可以实现数据的安全性和代码的复用性。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
在上面的示例中,Person
类封装了name
和age
属性,并提供了对外访问的接口getName()
和getAge()
。
继承
继承是指一个类可以派生出子类,子类可以继承父类的属性和方法,并可以添加额外的功能或修改父类的行为。通过继承可以实现代码的重用和扩展。
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
public String getSchool() {
return school;
}
}
在上面的示例中,Student
类继承了Person
类,并添加了school
属性和getSchool()
方法。
多态
多态是指一个对象可以以多种形态存在,可以根据上下文的不同而表现出不同的行为。多态可以提高代码的灵活性和可扩展性。
public interface Animal {
void makeSound();
}
public class Dog implements Animal {
public void makeSound() {
System.out.println("Woof!");
}
}
public class Cat implements Animal {
public void makeSound() {
System.out.println("Meow!");
}
}
在上面的示例中,Animal
接口定义了makeSound()
方法,Dog
和Cat
类分别实现了该接口,并根据自身的特点实现了不同的行为。
Java面向对象题目及答案
题目一
编写一个Circle
类,包含一个私有的半径字段和相应的getter和setter方法,以及计算圆的面积和周长的方法。
public class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
题目二
编写一个Student
类,包含姓名、年龄和成绩三个字段,并提供相应的getter和setter方法。另外,编写一个StudentManager
类,包含一个ArrayList<Student>
字段,实现添加学生、查找学生和删除学生的方法。
import java.util.ArrayList;
public class Student {
private String name;
private int age;
private double score;
public Student(String name, int age, double score) {
this.name = name;
this.age = age;
this.score = score;
}
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 double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
public class StudentManager {
private ArrayList<Student> students;
public Student