面向对象编程练习题
第一题
定义一个 Person 类 {name, age, job},初始化 Person 对象数组,有 3 个 person 对象,并按照 age 从大到小进行排序,提示,使用冒泡排序。
package com.hspedu.homework;
import java.util.SortedMap;
public class Homework01 {
public static void main(String[] args) {
Person[] persons = new Person[3];
persons[0] = new Person("Tom", 20, "student");
persons[1] = new Person("Jack", 18, "worker");
persons[2] = new Person("Smith", 19, "singer");
//输出当前对象数组
System.out.println("当前对象数组:");
for(int i = 0; i < persons.length; i++){
System.out.println(persons[i]);
}
//使用冒泡排序
for(int i = 0; i < persons.length - 1; i++){
for(int j = 0; j <persons.length - i - 1; j++){
if(persons[j].getAge() < persons[j + 1].getAge()){
Person temp = persons[j];
persons[j] = persons[j + 1];
persons[j + 1] = temp;
}
}
}
System.out.println("对象数组按照年龄(从大到小)排序后:");
for(int i = 0; i < persons.length; i++){
System.out.println(persons[i]);
}
}
}
class Person{
private String name;
private int age;
private String job;
public Person(String name, int age, String job) {
this.name = name;
this.age = age;
this.job = job;
}
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 getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", job='" + job + '\'' +
'}';
}
}
第二题
写出四种访问修饰符和各自的访问权限。
第三题
编写老师类。
Homework03.java:
package com.hspedu.homework;
public class Homework03 {
public static void main(String[] args) {
Teacher[] teachers = new Teacher[3];
teachers[0] = new Professor("John", 50, "教授", 30000, 1.3);
teachers[1] = new FProfessor("Tom", 40, "副教授", 20000, 1.2);
teachers[2] = new JiangShi("Mary", 30, "讲师", 10000, 1.1);
for(int i = 0; i < teachers.length; i++){
teachers[i].introduce();
}
}
}
Teacher.java:
package com.hspedu.homework;
public class Teacher{
private String name;
private int age;
private String post;
private double salary;
private double grade;
public Teacher(String name, int age, String post, double salary, double grade) {
this.name = name;
this.age = age;
this.post = post;
this.salary = salary;
this.grade = grade;
}
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 getPost() {
return post;
}
public void setPost(String post) {
this.post = post;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public double getGrade() {
return grade;
}
public void setGrade(double grade) {
this.grade = grade;
}
@Override
public String toString() {
return "Teacher{" +
"name='" + name + '\'' +
", age=" + age +
", post='" + post + '\'' +
", salary=" + salary +
", grade=" + grade +
'}';
}
public void introduce(){
System.out.println(toString());
}
}
Professor.java:
package com.hspedu.homework;
public class Professor extends Teacher{
public Professor(String name, int age, String post, double salary, double grade) {
super(name, age, post, salary,grade);
}
@Override
public void introduce() {
System.out.println("这是教授信息:");
super.introduce();
}
}
FProfessor.java:
package com.hspedu.homework;
public class FProfessor extends Teacher{
public FProfessor(String name, int age, String post, double salary, double grade) {
super(name, age, post, salary, grade);
}
@Override
public void introduce() {
System.out.println("这是副教授信息:");
super.introduce();
}
}
JiangShi.java: