黑马程序员__函数

----------- [url=http://www.itheima.com][color=red]android培训[/color][/url]、[url=http://www.itheima.com][color=red]java培训[/color][/url]、java学习型技术博客、期待与您交流! ------------


[b]什么是函数? [/b]
函数是定义在类中,具有特定功能的一段独立的代码。函数也叫方法。
函数的格式
修饰符 返回值类型 函数名(参数列表){return 返回值;}
public void method()
{
System.out.println("this is a method");
}


[b]函数的特点 [/b]
1.将功能进行封装
2.便于复用
3.函数只有调用时才会被执行
4.没有返回值的函数return语句可以不写。
5.最重要一点函数定义在类内,重申一次(呵呵)。

[b]注意:[/b]
1.函数内部能定义函数,也就是函数不能嵌套定义。
2.不能在函数内无条件的调用本函数,会无限递归导致程序崩溃。

[b]主函数[/b]
主函数是一个特殊函数,作为程序入口,可以被JVM调用,保证程序独立运行(它拥有一般函数的特性)。
主函数定义:
public:权限修饰符,表示该函数的访问权限最大
static:表示主函数随着类的加载就已经存在了
void:主函数没有具体返回值类型
main:不是关键字,但是一个特殊的单词可以被JVM识别
String[] args:函数的参数,参数类型是一个数组,该数组中的元素是字符串。
注意:
1.JVM只识别带有String[] args参数的main函数
2.主函数是固定格式的,能被JVM识别,只有参数数组名args可以改动
3.JVM在调用主函数时,传入的是new String[0]

----------- [url=http://www.itheima.com][color=red]android培训[/color][/url]、[url=http://www.itheima.com][color=red]java培训[/color][/url]、java学习型技术博客、期待与您交流! ------------
### MySQL 窗口函数 `OVER` 的使用教程 #### 定义与基本语法 窗口函数通过 `OVER` 子句定义操作的数据窗口。此子句允许指定分区、排序以及框架条件,从而影响函数如何处理数据集中的每一行[^5]。 ```sql window_function (expr) OVER ( [PARTITION BY value_expression, ... ] [ORDER BY sort_expression [ASC|DESC], ... ] [frame_clause] ) ``` - **PARTITION BY**: 类似于 SQL 查询语句里的 GROUP BY,用于将查询结果划分为多个逻辑部分,在这些独立的部分内应用窗口函数。 - **ORDER BY**: 对各分区内记录按特定列进行排列;对于某些依赖顺序的窗口功能至关重要。 - **frame_clause**: 可选参数,用来进一步限定参与运算的具体行集合,默认情况下整个分区作为当前行上下文的一部分。 #### 实际应用场景举例说明 ##### 计算累计销售额 假设有一个销售表 `sales`,其中包含日期 (`sale_date`) 和金额 (`amount`) 字段: ```sql SELECT sale_date, amount, SUM(amount) OVER (ORDER BY sale_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cumulative_sales FROM sales; ``` 上述代码会基于时间先后次序累加每一天发生的交易总额,并将其展示给用户查看[^1]。 ##### 获取前一行/后一行数值对比分析 利用LAG() 或 LEAD() 函数可以方便地访问相邻两行之间的差异情况: ```sql SELECT employee_id, salary, LAG(salary, 1) OVER (PARTITION BY department ORDER BY hire_date) as prev_salary, LEAD(salary, 1) OVER (PARTITION BY department ORDER BY hire_date) as next_salary FROM employees; ``` 这段脚本能够帮助我们比较同一部门内部员工入职前后薪资变化趋势[^3]。 ##### 平均成绩排名统计 当面对学生成绩单时,可能希望知道每位同学在其所在班级里所处位置: ```sql SELECT student_name, score, AVG(score) OVER () avg_score, RANK() OVER (PARTITION BY class_id ORDER BY score DESC) rank_in_class FROM scores; ``` 这里不仅给出了个人得分还附带了平均线及名次信息以便更直观理解个体表现状况[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值