IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> C1实训-Java薪资转换(适合初学者) -> 正文阅读

[Java知识库]C1实训-Java薪资转换(适合初学者)

目录

一、实验任务

二、实验思路

三、涉及知识点

1. Java基本结构

2. Java控制台输入

3. Java控制台输出

4. 基本数据类型

5. 变量

6. while循环

7. 异常捕捉

8. 注释

四、实验过程

1. 创建Java类

?2. 获取用户输入值

?3. 计算并输出

五、实验测试

1. 控制台输入

?2. 参数输入

?六、生成文档


一、实验任务

????????用户输入月薪,程序内部实现薪资转换(每月工作22天,一年13薪),并输出到控制台中。?

二、实验思路

  1. Scanner类接收用户输入月薪/通过输入参数给main函数中的接收参数数组args[],并判断输入类型是否正确,如不正确,需要重新获取。
  2. 使用计算公式将需要的日薪、年薪算出来:day=month/22, year=month*13。
  3. 使用System.out.format()方法将日薪、月薪使用固定格式输出。

三、涉及知识点

1. Java基本结构

? ? ? ? 类结构:第1行和第5行构成了最外层结构,由一对大括号(“{}”)组成,称之为类结构。“public”,“class”称之为Java中的关键字,表示公共的类,所有人能获取。目前情况下,这两个关键字时必选项,“HelloWorld”是类名。Java代码都是以类为基本单位进行组织,类中可以包含属性和方法。?

? ? ? ? ?main方法:第2行和第4行是类“HelloWorld”中的方法,同时这也是最特殊的一个方法,所有Java程序都是从main方法开始运行的,因此被称为Java程序的入口。“main”方法必须要用“public”,“static”进行限定,表示公共的,静态的(无需创建对象,就能调用)。“void”代表不返回任何类型,小括号中的“String[] args”是一个参数,代表一个字符串数组,该数组从类外部传入,数组名叫“args”(可自行替换,只是习惯用args)。除了“args”,其他都是固定的,用一个“{}”代表一个方法的开始与结束。

? ? ? ?? 程序层次结构:代码之间存在嵌套和对齐的情况,Java代码中,指令之间的空格和换行不影响程序的正常执行,IDEA会自动完成代码对齐,使源代码看起来层次结构清晰,类和方法定义时要用大括号进行范围限定,单个语句要用";"结尾,表示语句的结束。

2. Java控制台输入

????????从控制台接收用户输入需要三步走:第一步,通过导入包指定Scanner类(“import java.util.Scanner;”),该代码需要写在一开始类的上面;第二步,创建Scanner的对象input,以后用input就可以(“Scanner input = new Scanner(System.in);”),目前阶段暂时将该代码写在“mian”方法中;第三步,通过input对象的不同方法接收用户输入开始使用,注意不同方法的返回数据类型不同,见下图所示。

3. Java控制台输出

????????System.out.println()的作用是向控制台(也称命令行窗口)输出文本。“System”是系统定义好的类名,“out”是其中的一个静态成员,为“PrintStream”类型,其中有一个方法是“printf”,用于输出文本。“println”表示输出之后换行,“print”不换行。小括号和双括号中间的内容就是要输出的文本,可以输出字符串(用“”),也可以输出变量,中间用“+”连接。

? ? ? ? 特定格式输出:使用System.out.format

在控制台输出时基于格式考虑需要进行相关数字的显示方式进行限定,比如为了对其设置整体显示宽度,比如小数点后留几位数?比如是否按照千位进行逗号隔开等。这里介绍两个可以实现的途径。

????????“format”方法与“printf”方法基本效果都一样,都可以向控制台输出内容。但是“format”方法进行一定的格式修饰。

????????格式占位符:“%d”表示一个整数;“%f”表示一个浮点数。

????????在“%”和“d”(或者是“f”)中间可以指定对齐方式(减号是左对齐)、是否需要千分位分隔符(逗号)、是否指定宽度(整型长度)、小数点后留几位等设置。看如下代码示例。

图片

????????输出结果是:“12,345.68 测试”。代码中减号(“-”)表示左对齐;逗号(“,”)表示需要千分位分割;10表示整体占位宽度;“.2”表示小数点后留两位。

4. 基本数据类型

(1)整数类型

????????在程序中需要整数类型有四种选择,最常用的是“int”类型,最小值为-2 31,最大值为2 31 -1。其次是“long”类型和“short”类型,取值范围分别是-2 63至2 63 -1和-32,768至32,767(含)。byte类型最小值为-128,最大值为127(含),常用于文件操作。

(2)浮点类型

????????程序中遇到有小数点的操作经常用的是double类型(同时也是默认的小数类型),双精度浮点型,取值范围1.797693E+308~ 4.9000000E-324(E+308表示是乘以10的308次方,E-324表示乘以10的负324次方)。float是单精度浮点型,取值范围3.402823E+38 ~ 1.401298E-45。

(3)字符类型

????????“char”是单个16位Unicode字符。最小值为'\u0000'(或0),最大值为'\uffff'(或65,535,含该值)。char类型的数据需要用单引号括起来,存储的是单个字符。

(4)布尔类型

????????“boolean”数据类型只有两个可能的值:“true”和“false”,代表“真”和“假”两种状态。通常用于逻辑判断。

5. 变量

????????程序中所处理的数据值会被保存到变量中,通过变量名可以取值和赋值。因为Java语言是一个强类型语言,所以类型决定变量可以存储什么样的值。要使用变量必须要先声明是什么类型,然后才能够使用。

????????声明变量的语法:数据类型??变量名;

????????可以在声明的时候也支持直接给变量名赋值,例如:数据类型??变量名 = 值;

6. while循环

????????当while括号内条件为true时,进入循环,当false时,退出循环;另可在程序内部加“break”终止循环。

7. 异常捕捉

????????try?-- 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。
????????catch?-- 用于捕获异常。catch用来捕获try语句块中发生的异常。
????????throw?-- 用于抛出异常。

8. 注释

????????Java代码中的注释分为三种类型,分别是:单行注释、多行注释和文档注释。

(1)单行注释

????????通过两个连续的斜杠(“//”)将单行后面出现的内容进行注释,如下图所示。单行注释一般用于方法内部某一个代码行的解释说明。

????????在IDEA中,单行注释的快捷键是<Ctrl+/>,再次按撤销注释。

(2)多行注释

????????以“/*”两个符号开始,“*/”两个符号结尾,中间的内容都是被注释的内容,可以跨多行,当然单行使用也是可以的。如下图所示,在程序开始部分和“main”方法中间分别使用了多行注释,这些被注释的代码不会被执行。多行注释可用于标记修改记录、复杂代码块的实现说明等等场景。

????????在IDEA中,多行注释的快捷键是< Ctrl+shift+/>,再次按撤销多行注释。

(3)文档注释

? ? ? ? 以“/**”两个符号开始,“*/”两个符号结尾,看上去跟多上注释没什么区别。不一样的地方在于使用“javadoc”工具(JDK 自带的工具)来生成信息,并输出到HTML文件中。常常用于类、方法、属性、常量、接口、静态数据的说明,同时提供了很多预定义标签,用“@”符号开始。编写程序的时候有一套特定的标签作注释,程序编写完成后,通过“javadoc”就可以同时形成程序的开发文档了。如下图所示在“HelloWorld”类和“main”方法上面分别写了文档注释。随着Java学习的深入,对于文档注释的使用场景会越来越清楚。

? ? ? ?后续有详细步骤。

四、实验过程

1. 创建Java类

????????按图示创建Java工程。

????????之后在创建好的Java工程src目录下创建Java类。

????????输入类名称就可以进行敲代码啦。如下图,定义两个全局变量,分别是float类型的表示月薪的monthSalary、日薪的daySalary、年薪的yearSalary,并且初始化为0。

?2. 获取用户输入值

? ? ? 方法一:控制台获取用户输入。使用while循环可以检测用户输入是否正确,如果不正确,可以让其重复输入;输入正确,退出输入。使用Scanner获取用户输入。使用try、catch捕捉错误情况。代码及注释如下:

while (true) {
            //System是系统定义好的类名,“out”是其中一个静态成员
            System.out.print("请输入月薪(人民币):");
            //通过System.in获取控制台输入内容,传给创建的Scanner对象,并用Scanner类型变量(input)接收
            Scanner input = new Scanner(System.in);
            //try里面的代码是正常运行时的
            try {
                //Scanner对象(input)接收下一个浮点型,赋值给月薪
                monSalary = input.nextFloat();
                //原先的Exception没有检查负数的,所以自己设立条件,并将错误throw出去
                //NegativeFloatException为自行创建的Exception继承类
                if (monSalary <=0){
                    throw new NegativeFloatException();
                }
                break;
            //catch捕捉错误类型,当发生该类型错误时,不执行try中后续步骤,执行花括号内的代码
            }catch (Exception e){
                //输出错误信息
                System.out.println("输入有误,请输入正数!");
            }
        }

????????方法二:利用main方法的args数组实现参数传递。注意:NegativeFloatException类不在Java苦中的Exception中,因此需要自己创建该类,自设条件,并throw出去。

 //如果没有输入参数,提示
        if(args.length == 0){
            System.out.println("您未传递参数");
            return;
        }
        try {
            //args[0]是字符串类型,转换成数字
            monSalary=Float.parseFloat(args[0]);
            //System是系统定义好的类名,“out”是其中一个静态成员
            System.out.println("您输入的月薪(人民币):"+monSalary);
            //try里面的代码是正常运行时的
            //原先的Exception没有检查负数的,所以自己设立条件,并将错误throw出去
            //NegativeFloatException为自行创建的Exception继承类
            if (monSalary <=0){
                throw new NegativeFloatException();
            }
        //catch捕捉错误类型,当发生该类型错误时,不执行try中后续步骤,执行花括号内的代码
        }catch (Exception e){
            //输出错误信息
            System.out.println("输入有误,请输入正数!");
            return;
        }

?3. 计算并输出

        daySalary = monSalary/22;
        yearSalary = monSalary*13;
        System.out.format("您的日薪:¥%,.2f",daySalary);
        System.out.println();
        System.out.format("您的月薪:¥%,.2f",yearSalary);

五、实验测试

1. 控制台输入

????????正常输入结果

?????????输入非正浮点数

?2. 参数输入

????????不同集成器输入的步骤不同。

????????此处以IDEA为例,按图示点击菜单栏中的"Run"中的"Run"选项。

????????点击“Edit Configurations”。

? ? ? ? ?正常参数的输出结果。

?????????非正浮点数输出结果(负数):

?????????非正浮点数输出结果(非数字):

?六、生成文档

????????使用文档注释自动生成文档。

????????通过IDEA提供的“javadoc”生成功能可以很方便直观的得到文档注释的输出效果。接下里说明一下操作步骤。首先,如下图所示,单击菜单中的“Tools→Generate JavaDoc…”

????????在“Generate JavaDoc”对话框中进行相关配置,如图所示。

????????上图中标记为1的地方选择了单个文件;标记为2的地方指定输出“THML”文件(网页文件)的路径;标记为3的地方勾选了文档注释中指定的两个标签复选框;标记为4的地方填写向“Javadoc.exe”程序传递的参数。参数需要写在一行,为了方便解释以换行形式展示。

  1. “-encoding UTF-8”表示你的源代码是基于 UTF-8 编码的,以免处理过程中出现乱码;
  2. “-charset UTF-8”表示在处理并生成网页文档时使用的字符集也是以“UTF-8”进行编码;
  3. “-windowtitle”表示生成的网页文档在浏览器中打开时,浏览器窗口标题栏要显示的文字;
  4. “-link”表示如果生成的文档会中涉及到对其他外部Java类的引用,通过指定“https://docs.oracle.com/en/java/javase/11/docs/api”参数,可以直接指向官方API对应的详细文档地址。
  5. 单击图2-7的“OK”按钮后开始生成说明文档,如图所示。

?


结语

每一门语言的基础是一定要打牢的,希望此博客对大家有用!

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-02 23:12:37  更:2021-11-02 23:12:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/28 8:16:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码