Java作业题记录

loading... 

1.定义一个Person类{name, age, job},初始化Person对象数组,有3个person对象,并按照 age 从 大到 小进行排序,提示,使用冒泡排序Homework01.java

难点1:初始化数组Person[] people = new Person[3];

难点2:获得年龄数据people[j].getAge()

难点3:System.out.println(people[i]); //默认调用对象toString 方法

package com.hspedu.extend_.exercise.OOP;public class HomeWork01 {public static void main(String[] args) {Person[] people = new Person[3];people[0] = new Person("小莫", 19, "学生");people[1] = new Person("小季", 20, "学生");people[2] = new Person("小林", 19, "学生");for (int i = 0; i < people.length; i++) {System.out.println(people[i]);  //默认调用对象toString 方法}Person tmp = null; //因为要交换的是Person 类型的对象//冒泡排序for (int i = 0; i < people.length - 1; i++) {for (int j = 0; j < people.length - 1 - i; j++) {//年龄从大到小排序if(people[j].getAge() < people[j+1].getAge()) {tmp = people[j];people[j] = people[j+1];people[j+1] = tmp;}}}//排序后System.out.println("======排序后=====");for (int i = 0; i < people.length; i++) {System.out.println(people[i]);  //默认调用对象toString 方法}}
}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 String getJob() {
//        return job;
//    }
//
//    public void setJob(String job) {
//        this.job = job;
//    }public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", job='" + job + '\'' +'}';}
}

结果:

Person{name='小莫', age=19, job='学生'}
Person{name='小季', age=20, job='学生'}
Person{name='小林', age=19, job='学生'}
======排序后=====
Person{name='小季', age=20, job='学生'}
Person{name='小莫', age=19, job='学生'}
Person{name='小林', age=19, job='学生'} 

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

访问级别访问控制修饰符同类同包子类不同包
公开public
受保护protected×
默认没有修饰符××
私有private×××

 3.编写老师类 Homework03.java

(1)要求有属性“姓名name”,“年龄age”,“职称post”,“基本工资salary”

(2)编写业务方法,introduce(),实现输出一个教师的信息。
(3) 编写教师类的三个子类:教授类(Professor )、副教授类、讲师类。工资级别分别为:教授为1.3、副教授为1.2、讲师类1.1。在三个子类里面都重写父类的introduce()方法。

(4)定义并初始化一个老师对象,调用业务方法,实现对象基本信息的后台打印.

难点1:明确知晓在子类中无法得到父类的私有信息

难点2:知晓子类建构造器后要用super(),访问父类构造器

难点3:

即使一个方法没有定义任何参数,它仍然可以访问和操作类中的字段(属性)或全局变量。这些变量可以在方法被调用之前或之后定义,并且可以在方法内部使用。

此外,如果方法没有参数,但需要使用一些值进行操作,你可以在方法内部定义局部变量。这些变量只能在方法内部使用,并且它们的生命周期仅限于该方法的执行期间

package com.hspedu.extend_.exercise.OOP;public class HomeWork03 {public static void main(String[] args) {Professor professor = new Professor("贾宝玉", 30, "高级职称", 30000, 1.3);professor.introduce();}
}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;}public void introduce() {System.out.println("姓名:" + name + " 年龄:" + age + " 职称:"+ post + " 基本工资" + salary + " 工资级别" + grade);}}
package com.hspedu.extend_.exercise.OOP;
public class Professor extends Teacher{public Professor(String name, int age, String post, double salary, double grade) {super(name, age, post, salary, grade);}@Overridepublic void introduce() {System.out.println(" 这是教授的信息 ");super.introduce();}
}

 运行结果:

 这是教授的信息 
姓名:贾宝玉 年龄:30 职称:高级职称 基本工资30000.0 工资级别1.3

4.通过继承实现员工工资核算打印功能


父类:员工类
子类: 部门经理类、普通员工类
(1)部门经理工资=1000+单日工资*天数*等级 (1.2) 。

(2)普通员工工资=单日工资*天数*等级(1.0);

(3)员工属性:姓名,单日工资,工作天数

(4)员工方法(打印工资)
(5)普遍员工及部门经理都是员工子类,需要重写打印工资方法。
(5)定义并初始化普通员工对象,调用打印工资方法输入工资,定义并初始化部门经理对象,调用打印工资方法输入工资 

难点1:细品bonus

难点2:注意类名取名规则

package com.hspedu.extend_.exercise.OOP;public class HomeWork04 {public static void main(String[] args) {manage manage = new manage("刘备", 100, 20, 1.2);manage.setBonus(3000);manage.printSal();Worker worker = new Worker("关羽", 100, 20, 1.2);worker.printSal();}
}class employee {private String name;private double salary;private int day;//分析出还有一个属性等级private double grade;public double getGrade() {return grade;}public void setGrade(double grade) {this.grade = grade;}public employee(String name, double salary, int day, double grade) {this.name = name;this.salary = salary;this.day = day;this.grade = grade;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}//打印工资方法public void printSal() {System.out.println(name + " 工资是= " + salary * day * grade);}
}
package com.hspedu.extend_.exercise.OOP;public class manage extends employee{public manage(String name, double salary, int day, double grade) {super(name, salary, day, grade);}//特有属性bonus为变化的,不合适初始化private double bonus = 0;public double getBonus() {return bonus;}public void setBonus(double bonus) {this.bonus = bonus;}@Overridepublic void printSal() {System.out.println("经理 " + getName() + " 工资是="+ (bonus + getDay() * getSalary() * getGrade()));}  //细品bonus
}
package com.hspedu.extend_.exercise.OOP;public class Worker extends employee{public Worker(String name, double salary, int day, double grade) {super(name, salary, day, grade);}//    @Override
//    public void printSal() {
//        super.printSal();
//    }
}

运行结果:

经理 刘备 工资是=5400.0
关羽 工资是= 2400.0

5.不要忘记默认的super();调用父类的有参构造器
 

属性没有动态绑定机制,哪里声明,哪里使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

43.0BaseDao抽取dao公共父类

43.1. 回顾 1. 把数据库表中查询的结果封装到一个实体类中。 命名规则:类名和表名一致 类中属性和表的字段对应。 表中的一条记录对应实体的一个对象 多条记录→集合 43.2. 正文 目录 43.1. 回顾 43.2. 正文 43.3. 抽取dao公共父类。 43.4. 引入数据源 43.3. 抽取dao公共…

C#测试开源运行耗时库MethodTimer.Fody

微信公众号“dotNET跨平台”的文章《一个监控C#方法运行耗时开源库》介绍了支持测量方法耗时的包MethodTimer.Fody&#xff0c;使用方便&#xff0c;还可以自定义输出信息格式。本文学习并测试MethodTimer.Fody包的使用方式。   新建控制台程序&#xff0c;通过Nuget包管理器…

Python链式调用技巧:代码流畅无缝连接

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 链式调用是一种编程风格&#xff0c;它允许将多个方法调用连接在一起&#xff0c;形成一个连贯的操作链。在Python中&#xff0c;链式调用常常用于使代码更简洁、易读&#xff0c;尤其在处理数据处理和函数式编程…

web:ics-05(本地文件包含漏洞、preg_replace函数/e漏洞、php伪协议读取文件)

题目 打开页面显示如下 只有这个页面能打开 显示如下 用dirsearch扫一下 查看了一下&#xff0c;发现没什么用 查看页面源代码 返回了&#xff0c;写入的参数&#xff0c;猜测可能有文件包含漏洞 用php伪协议读取文件 构造payload ?pagephp://filter/readconvert.base64-en…

WordPress定时文章自动发布技巧

对于许多WordPress站长来说&#xff0c;文章的管理和发布计划往往是一个头疼的问题。随着内容的不断增加&#xff0c;时间表的调整以及发布频率的把握成为了让人焦头烂额的挑战。 一、时间管理难题 对于博客管理员来说&#xff0c;时间管理一直是个令人困扰的问题。在忙碌的生…

Springboot-注册注解【springboot常用注解】

1.组件注册 1.1 使用的注解 Configuration:普通配置类,替代以前的配置文件,配置类本身也是容器的组件|SpringBootConfiguration:Springboot配置类,与Configuration功能一样|Bean:替代以前的Bean标签,如果没有在Bean标签内定义名字,则默认组件的名字为方法名,可以直接修改注解…

简单0成本构建一个企业内部的视频点播、培训直播、安防监控、录像管理于一体的数字视频管理体系

以前&#xff0c;企业要构建一套数字化的视频管理体系&#xff0c;把企业内部的各种视频文件、直播培训、安防监控视频都整合到一套流媒体音视频服务里面&#xff0c;实现统一的对外供货、对外赋能的方案&#xff0c;是很困难的&#xff01;因为&#xff0c;原来这都是好几个项…

【Web】NewStarCTF Week4 个人复现

目录 ①逃 ②More Fast ③midsql ④InjectMe ⑤PharOne ⑥flask disk ①逃 一眼字符串逃逸 bad 替换为 good 字符增加一位 先构造一下试试 <?php class GetFlag {public $key;public $cmd "ls /";} $a new GetFlag(); echo serialize($a); 得到O:7:…

linux统计时间

#include <time.h>//ns差 struct timespec begin {0, 0}; clock_gettime(CLOCK_REALTIME, &begin);struct timespec end {0, 0}; clock_gettime(CLOCK_REALTIME, &end);int value end.tv_nsec - begin.tv_nsec;//另一种us时间差 struct timeval tv1; gettimeofd…

windows配置服务开机自启和保活

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、下载WinSW&#xff1f;二、使用步骤1.解压2.配置3.安装服务4.服务启停5.服务卸载6.开机自启7.保活 总结 前言 写了一个程序或者是exe&#xff0c;或者是ba…

Jmeter接口测试:jmeter_HTTP Cookie管理器看这一篇文章就够了

HTTP Cookie管理器 HTTP Cookie管理器可以像浏览器一样自动存储和发送cookie&#xff0c;以这种自 动收集的方式收集到的cookie不会在cookie manager中进行展示&#xff0c;但是运行后&#xff0c; 可以通过 查看结果树&#xff08;监听器&#xff09;可以查看到cookie信息 除…

java单例模式

文章目录 单例模式3、懒汉式 - 懒汉式非线程安全4、饿汉式 - 线程安全5、懒汉式和饿汉式区别6、双重检查锁定7、应用场景 来讲讲java单例 单例模式 java中单例模式是一种常见的设计模式&#xff0c;单例模式的写法有好几种&#xff0c;这里主要介绍三种&#xff1a;懒汉式单例…

抑制过拟合——Dropout原理

抑制过拟合——Dropout原理 Dropout的工作原理 实验观察 在机器学习领域&#xff0c;尤其是当我们处理复杂的模型和有限的训练样本时&#xff0c;一个常见的问题是过拟合。简而言之&#xff0c;过拟合发生在模型对训练数据学得太好&#xff0c;以至于它捕捉到了数据中的噪声和…

如何提高谷歌上架成功率?代码混淆加固、AB面、账号关联

众所周知&#xff0c;Google play商店在全球是极具影响力的应用市场之一&#xff0c;随着市场和科学技术的发展&#xff0c;竞争越来越激烈&#xff0c;谷歌的政策也越来越严格。 为了维持良好的竞争环境和用户体验&#xff0c;谷歌不断更新政策和规则&#xff0c;同时加强对部…

系统部署安装-Centos7-Cassandra

文章目录 介绍安装在线下载安装启动普通启动注册服务 介绍 Apache Cassandra是一个高度可扩展的高性能分布式数据库&#xff0c;旨在处理许多商用服务器上的大量数据&#xff0c;提供高可用性而没有单点故障。 安装 在线下载 &#xff08;1&#xff09;使用weget下载最新的…

mabatis基于xml方式和注解方式实现多表查询

前面步骤 http://t.csdnimg.cn/IPXMY 1、解释 在数据库中&#xff0c;单表的操作是最简单的&#xff0c;但是在实际业务中最少也有十几张表&#xff0c;并且表与表之间常常相互间联系&#xff1b; 一对一、一对多、多对多是表与表之间的常见的关系。 一对一&#xff1a;一张…

cesium不同版本对3dtiles的渲染效果不同,固定光照的优化方案

cesium不同版本对3dtiles的渲染效果不同&#xff0c;固定光照的优化方案&#xff0c;避免map.fixedLight true,导致的光照效果太强&#xff0c;模型太亮的问题。 问题来源&#xff1a; 1.Cesium1.47版本加载tileset.json文件跟Mars3d最新版加载文件存在差异效果 Cesium1.47…

基于springboot的课程作业管理系统

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;课程作业管理系统当然也不能排除在外。课程作业管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法…

4.1字符类型统计器(C语言实现)

【题目描述】请编写一个C程序&#xff0c;在终端用键盘输入字符串&#xff0c;以CtrlZ组合键表示输入完毕&#xff0c;统计输入的字符串中空格符、制表符、换行符的个数&#xff0c;并显示统计的结果。 【代码实现】 # include <stdio.h> int main() {int space 0, tab…

1022. 宠物小精灵之收服,二维花费的背包

1022. 宠物小精灵之收服 - AcWing题库 宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。 一天&#xff0c;小智和皮卡丘来到了小精灵狩猎场&#xff0c;里面有很多珍贵的野生宠物小精灵。 小智也想收服其中的一些小精灵。 然而&#xff0c;野生的小精灵并不那么容…