「Java教案」Java程序的构成

article/2025/7/22 18:39:47

课程目标

1.知识目标

  1. 能够按照Java标识符的命名规则,规范变量的命名。
  2. 能够区分Java中的关键字与保留字。
  3. 能够对注释进行分类,根据注释的用途合理的选择注释方式。

2能力目标

  1. 能编写符合规范的标识符。
  2. 能识别Java中的关键字和保留字防止误用。
  3. 能对Java代码合理的添加注释,从而提高代码可读性。

3思政目标

  1. 通过对代码规范行的要求,培养学生严谨的工程思维。
  2. 通过为代码合理的添加注释,强化学生的团队协作意识。

教学内容

1.标识符

  1. 定义:用于命名变量、方法、类等的自定义符号,例如ageStudent
  2. 标识符的命名规则
  • 标识符可以由字母、数字、下划线_、美元符号$组成,但不能用数字开头。
  • 标识符区分大小写,例如,nameName是不同的标识符。
  • 保留字不能作为Java的标识符。
  • 在命名时建议见名知意,例如,取名为totalScore而不是ts

2.关键字与保留字:

  1. 保留字(Reserved Words)被Java语言保留、当前未使用但未来可能用作关键字的单词,或者在某些上下文中有特殊用途的单词。主要特点:
  • 保留字包括两类:①当前的关键字,例如,publicstatic。②未被使用但保留的单词,例如gotoconst
  • 保留字不能作为标识符,例如,不能作为变量名、类名等。
  • 特殊保留字:gotoconst虽然是保留字,但Java中并未实际使用(goto为避免滥用,const被final替代)。
  1. 关键字(Keywords):Java语言中预先定义的、具有特殊含义的单词,编译器会根据其用途进行解析。主要特点:
  • 关键字是Java语法中的一部分,具有特定功能,例如,控制流程、类定义、修饰符等。
  • 所有关键字均为小写(例如:ifclasspublicvoid)。
  • 关键字一定是保留字。

  1. 保留字和关键字的区别
  • 关键字有明确语法功能,保留字可能有使用也可能没有使用例如goto未使用。
  • 关键字和保留字都不能作为标识符,即使未使用的保留字也不能作为标识符。

3.注释:

在Java中,注释用于对代码进行解释说明,提高代码的可读性,或者临时禁用某些代码。注释不会被编译器执行,因此不会影响程序的运行。Java支持三种类型的注释:

  1. 单行注释
  • //开头,直到行尾的内容都是注释。
  • 适用场景:简短说明或临时注释单行代码。
  1. 多行注释
  • /*开头,以*/结尾,中间的所有内容都是注释。
  • 适用场景:注释多行代码或较长的说明。
  1. 文档注释
  • /**开头,以*/结尾,可以使用javadoc命令生成API文档。
  • 适用场景:类、方法、字段的说明文档,支持HTML标签和Javadoc标签(如@param@return@throws)。

重点分析

难点分析

教学活动设计

概念引入

  1. 标识符类比“人名不能与法律术语冲突”,例如“张三”作为人名是合法的,但“法官”作为人名是非法的
  2. 关键字:类比“交通信号灯”,红灯停、绿灯行,是定义好了的,不可自定义。
  3. 注释:类比“说明书”,代码是产品,注释是说明书。

案例解析

案例:标识符合法性

int age; // 合法
int 1age; // 非法(数字开头)
int class; // 非法(关键字)

案例:注释的作用

/*** 计算圆的面积* @param r 半径* @return 面积*/
public double area(double r) {// 公式:πr²return 3.14 * r * r;
}

常见错误

错误:int public = 10; → 错误原因:关键字不可作为变量名。

错误:int 1num = 10; → 错误原因:标识符不能数字开头。

错误:/* 注释1 /* 注释2 */ */ → 错误原因:避免嵌套多行注释。

课堂练习

练习:判断以下标识符是否合法:_name$price1userclass

参考答案:合法、合法、非法、非法。

练习:为以下代码添加注释

public int max(int a, int b) {if (a > b) return a;else return b;
}

参考答案

/*** 返回两个数中的较大值* @param a 第一个数* @param b 第二个数* @return 较大值*/
public int max(int a, int b) {// 判断a是否大于bif (a > b) return a;else return b;
}

课后作业

作业:编写一个Java类,包含合法标识符的变量、方法,并添加注释。

参考答案

public class Student {String name; // 合法标识符void study() { // 合法方法名System.out.println("学习");}
}

作业:修正以下代码中的错误。

public class Error {int int = 10; // 错误1/* 嵌套注释开始 /* 嵌套 */ */ // 错误2
}

参考答案:①int是Java中的关键字不能作为标识符;②避免嵌套多行注释。

public class Error {int value = 10; // 修正错误1/* 注释1 */ /* 注释2 */ // 修正错误2(避免嵌套)
}

考核设计

1过程性考核(40%)

  1. 课堂练习的完成程度(20%)
  2. 编写代码的规范性与添加注释的规范性(10%)
  3. 参与小组讨论和解决问题的能力(10%)

2终结性考核(60%)

  1. 理论测试(20%):选择题。
  2. 综合项目(40%):代码分析题。

综合项目:根据以下Java代码,请分析并回答下列问题。

/*** 计算两个数的乘积* @param x 第一个因数* @param y 第二个因数* @return 两数的乘积*/
public class Calculator {public static void main(String[] args) {int num1 = 5;  // 定义第一个数int num2 = 10; // 定义第二个数int product = multiply(num1, num2);System.out.println("乘积是: " + product);}static int multiply(int a, int b) {return a * b;}
}

问题:

1.列出代码中的所有用户自定义标识符(类名、方法名、变量名)。

参考答案:类名 - Calculator;方法名 - main,multiply;变量名 - num1,num2,product,a,b,args。

2.列出代码中出现的所有Java关键字。

参考答案:public,class,static,void,int,return。

3.代码中使用了哪两种注释?

参考答案:①文档注释 - /** ... */(用于生成API文档);单行注释 - // 定义第一个数。

4.文档注释的作用是什么?

参考答案:①通过javadoc工具生成HTML格式的API文档(如JDK官方文档)。②支持标签(如@param,@return)说明方法参数和返回值。


http://www.hkcw.cn/article/dLYvyKHajZ.shtml

相关文章

随记 配置服务器的ssl整个过程

第一步 先了解到这个公钥私钥服务器自己可以生成,但是没什么用,浏览器不会信任的,其他人访问不了。所以要一些中间机构颁布的证书才有用。 一般的服务器直接 安装 Certbot 和插件 //CentOS Nginx 用户: sudo yum install epe…

Spring Cloud 知识

Spring Cloud 知识 一. 服务注册与发现1. Eureka1. Eureka 的概念2. Eureka 的特点3. Eureka 的应用场景4. Eureka 的实现原理 2. Nacos1. Nacos 的概念2. Nacos 的特点3. Nacos 的应用场景4. Nacos 的实现原理1. 服务注册与发现:2. 配置管理:3. 一致性算…

半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司

半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司 微振控制在现行国家标准《电子工业洁净厂房设计规范》GB50472中有关微振控制的规定主要有:洁净厂房的微振控制设施的设计分阶段进行,应包括设计、施工和投产等各阶段的微振测试、厂房建…

《操作系统真相还原》——大战MBR

在开机的一瞬间,也就是接电的一瞬间,CPU 的 cs:ip 寄存器被强制初始化为 0xF000:0xFFF0。由于开机的时候处于实模式,再重复一遍加深印象,在实模式下的段基址要乘以16,也就是左移4位,…

【计算机网络】fork()+exec()创建新进程(僵尸进程及孤儿进程)

文章目录 一、基本概念1. fork() 系统调用2. exec() 系列函数 二、典型使用场景1. 创建子进程执行新程序2. 父子进程执行不同代码 三、核心区别与注意事项四、组合使用技巧1. 重定向子进程的输入/输出2. 创建多级子进程 五、常见问题与解决方案僵尸进程(Zombie Proc…

Selenium操作指南(全)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 大家好,今天带大家一起系统的学习下模拟浏览器运行库Selenium,它是一个用于Web自动化测试及爬虫应用的重要工具。 Selenium测试直接运行在…

Linux研学-入门命令

一 目录介绍 1 介绍 Linux与Windows在目录结构组织上差异显著:Linux采用树型目录结构,以单一根目录/为起点,所有文件和子目录由此向下延伸形成层级体系,功能明确的目录各司其职,使文件系统层次清晰、逻辑连贯&#xf…

GSR 手环能耗数据实测:STM32 与 SD NAND 的功耗优化成果

文章目录 卓越性能强化安全高效能效图形处理优势丰富集成特性模拟模块实时监控保障数据完整性提升安全性与可靠性测量原理采样率相关 在智能皮电手环及数据存储技术不断迭代的当下,主控 MCU STM32H750 与存储 SD NAND MKDV4GIL-AST 的强强联合,正引领行业…

PCIe-PCI、PCIe中断机制概述

PCI、PCIe中断概述 PCIe 中断机制在继承 PCI 传统中断(INTx)的基础上,引入了更高效的 MSI/MSI-X 方案,以提升设备性能并减少 CPU 轮询开销。以下是核心要点及技术演进: ⚙️ ​​一、PCIe 中断类型与演进​​ ​​IN…

知识图谱增强的大型语言模型编辑

https://arxiv.org/pdf/2402.13593 摘要 大型语言模型(LLM)是推进自然语言处理(NLP)任务的关键,但其效率受到不准确和过时知识的阻碍。模型编辑是解决这些挑战的一个有前途的解决方案。然而,现有的编辑方法…

建立连接后 TCP 请求卡住

大家读完觉得有意义记得关注和点赞!!! 这篇文章描述了一个内核和BPF网络问题 以及故障排除步骤,这是一个值得深入研究的有趣案例 Linux 内核网络复杂性。 目录 1 故障报告 1.1 现象:概率健康检查失败 1.2 范围&am…

C++核心编程_赋值运算符重载

4.5.4 赋值运算符重载 c编译器至少给一个类添加4个函数 默认构造函数(无参,函数体为空) 默认析构函数(无参,函数体为空) 默认拷贝构造函数,对属性进行值拷贝 赋值运算符 operator, 对属性进行值拷贝 如果类中有属性指向堆区,做…

深度学习笔记25-RNN心脏病预测(Pytorch)

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 一、前期准备 1.数据处理 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn dfpd.read_csv(r&…

基于 HT for Web 轻量化 3D 数字孪生数据中心解决方案

一、技术架构:HT for Web 的核心能力 图扑软件自主研发的 HT for Web 是基于 HTML5 的 2D/3D 可视化引擎,核心技术特性包括: 跨平台渲染:采用 WebGL 技术,支持 PC、移动端浏览器直接访问,兼容主流操作系统…

CIO大会, AI课笔记手稿分享

能认真听课的CIO不多了 能认真听课的CIO还能记笔记的不多了 能认真听课的CIO还能记笔记的字写得好的不多了

stl三角面元文件转颗粒VTK文件

效果展示: import os import sys import json import argparse import numpy as np import pandas as pd import open3d as o3d from glob import globPARTICLE_RADIUS 0.025def stl_to_particles(objpath, radiusNone):if radius is None:radius PARTICLE_RADIU…

vue为什么点击两遍才把参数传递过去

先说一下场景,就是我把云服务器这个下拉选择框分别初始化之后,然后点击新建权限然后就打开了右侧的抽屉式的对话框,页面上那个文字信息是传递过来了。那个是正确的,但是我请求接口的时候,发现请求的接口的参数总是要慢…

NodeMediaEdge通道管理

NodeMediaEdge任务管理 简介 NodeMediaEdge是一款部署在监控摄像机网络前端中,拉取Onvif或者rtsp/rtmp/http视频流并使用rtmp/kmp推送到公网流媒体服务器的工具。 在未使用NodeMediaServer的情况下,或者对部分视频流需要单独推送的需求,也可…

2025年- H59-Lc167--207.课程表(拓扑排序、BFS)-需二刷--Java版

1.题目描述 2.思路 记录每门课程的前置课程数量,记录每门课程是哪些课程的前置课程。 (1)如果有向图中的拓扑图中存在环,则说明所有的课程是无法完成的。 (2)使用拓扑排序,在图中每个节点的入度…

MQTT的Thingsboards的使用

访问云服务 https://thingsboard.cloud/ 新建一个设备 弹出 默认是mosquittor的客户端。 curl -v -X POST http://thingsboard.cloud/api/v1/tnPrO76AxF3TAyOblf9x/telemetry --header Content-Type:application/json --data "{temperature:25}" 换成MQTTX的客户…