30天学会JAVA—练习题(2021韩顺平)——Day8
1.代码【自己】
class Person{
String name;
int age;
String job;
public Person(String name, int age, String job) {
super();
this.name = name;
this.age = age;
this.job = job;
}
}
public class Test {
public static void main(String[] args) {
Person person1 = new Person("ada", 12, "student");
Person person2 = new Person("张三", 35, "worker");
Person person3 = new Person("李四", 24, "teacher");
Person[] persons = new Person[]{
person1,person2,person3};
System.out.println(Arrays.toString(persons));
for(int i = 0 ; i < persons.length - 1; i++){
//要减一,别忘了
for(int j = 0; j < persons.length -1 - i ; j++){
if(persons[j].age > persons[j+1].age){
Person temp = persons[j];
persons[j] = persons[j+1];
persons[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(persons));
}
}
代码【老师】
package experiments;
import java.util.Arrays;
class Perason{
private String name;
private int age;
private String job;
public Perason(String name, int age, String job) {
super();
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 "Perason [name=" + name + ", age=" + age + ", job=" + job + "]";
}
}
public class Test {
public static void main(String[] args) {
Perason[] perasons = new Perason[3];
perasons[0] = new Perason("ada", 12, "student");
perasons[1] = new Perason("张三", 35, "worker");
perasons[2] = new Perason("李四", 24, "teacher");
System.out.println("原始为:");
for(int i = 0 ; i < perasons.length; i++){
System.out.println(perasons[i]);//重写了toString
}
for(int i = 0 ; i < perasons.length - 1; i++){
//要减一,别忘了
for(int j = 0; j < perasons.length -1 - i ; j++){
if(perasons[j].getAge() > perasons[j+1].getAge()){
Perason temp = perasons[j];
perasons[j] = perasons[j+1];
perasons[j+1] = temp;
}
}
}
System.out.println("排序后为:");
for(int i = 0 ; i < perasons.length; i++){
System.out.println(perasons[i]);
}
}
}
2. 四种访问修饰符及访问权限
私有默认,保护公开
类内同包,子类任何
访问修饰符 | 类内 | 同一个包 | 子类 | 任何 |
---|---|---|---|---|
private | √ | |||
default(默认) | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
package experiments;
public class Teacher {
private String name;
private int age;
private String post;
private double salary;
public Teacher(String name, int age, String post, double salary) {
super();
this.name = name;
this.age = age;
this.post = post;
this.salary = salary;
}
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 void introduce(){
System.out.println("姓名:" + name +",年龄:"+ age +",职称:"+ post +",基本工资" + salary);
}
public static void main(String[] args) {
new Teacher("张三", 18, "不知道", 0.2).introduce();
new Professor("李四", 49, "教授", 1.3).introduce();
new Professor("jack", 40, "副教授", 1.2).introduce();
new Professor("ada", 24, "讲师", 1.1).introduce();
}
}
class Professor extends Teacher{
double salary = 1.3;
public Professor(String name, int age, String post, double salary) {
super(name, age, post, salary);
this.salary = salary;
}
@Override
public void introduce() {
System.out.println("姓名:" + getName() +",年龄:"+ getAge() +",职称:"+ getPost() +",基本工资" + salary);
}
}
class ViceProfessor extends Teacher{
double salary = 1.2;
public ViceProfessor(String name, int age, String post, double salary) {
super(name, age, post, salary);
this.salary = salary;
}
@Override
public void introduce() {
System.out.println("姓名:" + getName() +",年龄:"+ getAge() +",职称:"+ getPost() +",基本工资" + salary);
}
}
class Lecturer extends Teacher{
double salary = 1.1;
public Lecturer(String name, int age, String post, double salary) {
super(name, age, post, salary);
this.salary = salary;
}
@Override
public void introduce() {
System.out.println("姓名:" + getName() +",年龄:"+ getAge() +",职称:"+ getPost() +",基本工资" + salary);
}
}
class Employee{
private String name;
private int salary;
private int day;
public Employee(String name, int salary, int day) {
super();
this.name = name;
this.salary = salary;
this.day = day;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public void showInfo(){
double totalSalary = salary * day;
System.out.println("员工工资为:" + totalSalary);
}
}
class Manager extends Employee{
double grade = 1.2;
public Manager(String name, int salary, int day, double grade) {
super(name, salary, day);
this.grade = grade;
}
@Override
public void showInfo() {
double totalSalary = getSalary() * getDay() * grade;
System.out.println("部门经理工资为:" + totalSalary);
}
}
class OrdinaryEmployee extends Employee{
double grade = 1.0;
public OrdinaryEmployee(String name, int salary, int day, double grade) {
super(name, salary, day);
this.grade = grade;
}
@Override
public void showInfo() {
double totalSalary = getSalary() * getDay() * grade;
System.out.println("普通员工工资为:" + totalSalary);
}
}
public class Test {
public static void main(String[] args) {
new OrdinaryEmployee("jack", 1, 30, 1.0).showInfo();
new Manager("ada", 2, 30, 1.2).showInfo();
}
}
package experiments;
class Employee{
private int basicSalary;
public Employee(int basicSalary) {
super();
this.basicSalary = basicSalary;
}
public int getBasicSalary() {
return basicSalary;
}
public void setBasicSalary(int basicSalary) {
this.basicSalary = basicSalary;
}
public void showSalary(){
System.out.println("工资为:"+ basicSalary * 365);
}
}
class Worker extends Employee{
public Worker(int basicSalary) {
super(basicSalary);
}
public void showSalary() {
System.out.println("工人工资为:"+ getBasicSalary() * 365);
};
}
class Peasant extends Employee{
public Peasant(int basicSalary) {
super(basicSalary);
}
public void showSalary() {
System.out.println("农民工资为:"+ getBasicSalary()* 365);
};
}
class Teacher extends Employee{
private int course;
public Teacher(int basicSalary, int course) {
super(basicSalary);
this.course = course;
}
public void showSalary() {
System.out.println("老师工资为:"+ getBasicSalary()* 365 + course * 365);
};
}
class Scientist extends Employee{
private int bonus;
public Scientist(int basicSalary, int bonus) {
super(basicSalary);
this.bonus = bonus;
}
public void showSalary() {
System.out.println("科学家工资为:"+ getBasicSalary()* 365 + bonus);
};
}
class Waiter extends Employee{
public Waiter(int basicSalary) {
super(basicSalary);
}
public void showSalary() {
System.out.println("服务生工资为:"+ getBasicSalary()* 365);
};
}
public class Test {
public static void main(String[] args) {
new Worker(100).showSalary();
new Peasant(50).showSalary();
new Teacher(100, 10).showSalary();
new Scientist(100, 20000).showSalary();
}
}
Grand | Father | Son |
---|---|---|
this.name, this.age , this.g1() | this.id, this.score, this.f1(), this.name, this.g1() ,super.name, super.g1() | this.name., this.g1(),this.show(),this.id,this.f1(), super.name ,super.g1() ,super.id super.f1() |
super:调用父类的属性和方法(有访问权限)
this:调用本类和父类的属性和方法(有访问权限)