Java基础知识点 — 知识点巩固练习题第一部分

1.定义一个Person类 {name, age, job},初始化Person对象数组,有3个person对象,并按照age从大到小进行排序,提示,使用冒泡排序。代码编写在Homework01.java文件种。
 1 package com.hspedu.homework;
 2 
 3 public class Homework01 {
 4     public static void main(String[] args) {
 5         Person[] person = new Person[3]; //注意,这里没有申请Person对象
 6         person[0] = new Person("jack",10,"JavaEE工程师");
 7         person[1] = new Person("tom",50,"大数据工程师");
 8         person[2] = new Person("marry",30,"PHP工程师");
 9         //输出当前对象数组
10         for (int i = 0; i < person.length; i++) {
11             System.out.println(person[i]);  //默认调用对象的toString方法
12         }
13         //使用冒泡排序处理
14         Person tmp = null; //用于交换的临时变量
15         for (int i = 0; i < person.length - 1; i++) {  //外层循环
16             boolean flag = true;
17             for (int j = 0; j < person.length - 1 - i; j++) {  //内层循环
18                 // 如果前面人的年龄小于后面人的年龄,就交换
19                 if(person[j].getAge() < person[j+1].getAge()) {
20                     tmp = person[j];
21                     person[j] = person[j+1];
22                     person[j+1] = tmp;
23                     flag = false;
24                 }
25             }
26             if(flag) {
27                 break;
28             }
29         }
30         System.out.println("==============排序后的效果=================");
31         //输出当前对象数组
32         for (int i = 0; i < person.length; i++) {
33             System.out.println(person[i]);  //默认调用对象的toString方法
34         }
35     }
36     /*
37     定义一个Person类 {name, age, job},初始化Person对象数组,
38     有3个person对象,并按照age从大到小进行排序,提示,使用冒泡排序。代码编写在Homework01.java文件种。
39      */
40 }
41 
42 class Person {
43     private String name;
44     private int age;
45     private String job;
46 
47     public Person(String name, int age, String job) {
48         this.name = name;
49         this.age = age;
50         this.job = job;
51     }
52 
53     public String getName() {
54         return name;
55     }
56 
57     public void setName(String name) {
58         this.name = name;
59     }
60 
61     public int getAge() {
62         return age;
63     }
64 
65     public void setAge(int age) {
66         this.age = age;
67     }
68 
69     public String getJob() {
70         return job;
71     }
72 
73     public void setJob(String job) {
74         this.job = job;
75     }
76 
77     @Override
78     public String toString() {
79         return "Person{" +
80                 "name='" + name + '\'' +
81                 ", age=" + age +
82                 ", job='" + job + '\'' +
83                 '}';
84     }
85 }

 

2.写出四种访问修饰符和各自的访问权限 Homework02.java

  本类 同包 子类 不同包
public 
protect
默认 ❌(子类需要同包)
private

 

 1 package com.hspedu.homework;
 2 
 3 public class Homework03 {
 4     public static void main(String[] args) {
 5         Professor professor = new Professor("贾宝玉", 30, "高级", 30000, 1.3);
 6         professor.introduce();
 7     }
 8 }
 9 
10 class Teacher {
11     private String name;
12     private int age;
13     private String post;
14     private double salary;
15     //这里我们再增加一个工资级别
16     private double grade;
17 
18     public void introduce() {
19         System.out.println("name:" + name + " age:" + age + " post:" + post + " salary:" + salary
20         + " grade" + grade);
21     }
22 
23     public Teacher(String name, int age, String post, double salary,double grade) {
24         this.name = name;
25         this.age = age;
26         this.post = post;
27         this.salary = salary;
28         this.grade = grade;
29     }
30 
31     public double getGrade() {
32         return grade;
33     }
34 
35     public void setGrade(double grade) {
36         this.grade = grade;
37     }
38 
39     public String getName() {
40         return name;
41     }
42 
43     public void setName(String name) {
44         this.name = name;
45     }
46 
47     public int getAge() {
48         return age;
49     }
50 
51     public void setAge(int age) {
52         this.age = age;
53     }
54 
55     public String getPost() {
56         return post;
57     }
58 
59     public void setPost(String post) {
60         this.post = post;
61     }
62 
63     public double getSalary() {
64         return salary;
65     }
66 
67     public void setSalary(double salary) {
68         this.salary = salary;
69     }
70 }
71 
72 class Professor extends Teacher {
73 
74 
75     public Professor(String name, int age, String post, double salary,double grade) {
76         super(name, age, post, salary,grade);
77     }
78 
79     @Override
80     public void introduce() {
81         System.out.println("这是教授的信息");
82         super.introduce();
83     }
84 }

思路分析:对于一个程序员而言,需要根据场景或者客户的大体需求分析出业务需求,这一点是很重要的。

  1 package com.hspedu.homework;
  2 
  3 public class Homework04 {
  4     public static void main(String[] args) {
  5         Manager manager = new Manager("刘备",100,20,1.2);
  6         //设置奖金
  7         manager.setBonus(3000);
  8         //打印经理的工资情况
  9         manager.printSal();
 10 
 11         Worker worker = new Worker("关羽", 50, 10, 1.0);
 12         worker.printSal();
 13     }
 14 }
 15 
 16 class Employee {
 17     private String name;
 18     private double daySal;
 19     private int  workDays;
 20     //分析出还有一个属性等级
 21     private double grade;
 22 
 23     public Employee(String name, double daySal, int workDays, double grade) {
 24         this.name = name;
 25         this.daySal = daySal;
 26         this.workDays = workDays;
 27         this.grade = grade;
 28     }
 29 
 30     //打印工资方法
 31     public void printSal() {
 32         System.out.println(name + " 工资=" + daySal*workDays*grade);
 33     }
 34 
 35     public String getName() {
 36         return name;
 37     }
 38 
 39     public void setName(String name) {
 40         this.name = name;
 41     }
 42 
 43     public double getDaySal() {
 44         return daySal;
 45     }
 46 
 47     public void setDaySal(double daySal) {
 48         this.daySal = daySal;
 49     }
 50 
 51     public int getWorkDays() {
 52         return workDays;
 53     }
 54 
 55     public void setWorkDays(int workDays) {
 56         this.workDays = workDays;
 57     }
 58 
 59     public double getGrade() {
 60         return grade;
 61     }
 62 
 63     public void setGrade(double grade) {
 64         this.grade = grade;
 65     }
 66 
 67 }
 68 
 69 class Manager extends Employee {
 70     //特有属性
 71     private double bonus;
 72     //创建Manager对象时,奖金是多少并不是确定的,因此在构造器中不给奖金
 73     //可以通过setBonus赋值
 74     public Manager(String name, double daySal, int workDays, double grade) {
 75         super(name, daySal, workDays, grade);
 76     }
 77 
 78     public double getBonus() {
 79         return bonus;
 80     }
 81 
 82     public void setBonus(double bonus) {
 83         this.bonus = bonus;
 84     }
 85 
 86     //方法:重写父类的printSal方法
 87     @Override
 88     public void printSal() {
 89         //因为经理的工资计算方式和Employee不一样,所以我们重写方法
 90         System.out.println("经理 " + getName() + " 工资是=" + (bonus+getDaySal()*getWorkDays()*getGrade()));
 91     }
 92 }
 93 
 94 class Worker extends Employee{
 95     //普通员工没有特有的属性,直接生成构造器即可
 96     public Worker(String name, double daySal, int workDays, double grade) {
 97         super(name, daySal, workDays, grade);
 98     }
 99 
100     @Override
101     public void printSal() { //因为普通员工和Employee输出工资的情况一样,所以直接调用父类的printSal方法即可
102         System.out.print("普通员工 ");
103         super.printSal();
104     }
105 }

 

 

 


 

posted @ 2023-01-14 14:06  C说编程  阅读(63)  评论(0)    收藏  举报