Java之--Java语言基础组成—函数
Java语言基础组成—函数
Java语言由8个模块构成,分别为:关键字、标识符(包名、类名、接口名、常量名、变量名等)、注释、常量和变量、运算符、语句、函数、数组。
本片主要介绍Java中的函数,函数是Java中最小的功能单元。
1.函数的定义
1) 定义:指在类中的具有特定功能的一段独立小程序,也称为方法。
2) 格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2, ... )
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
3) 范例
//计算任意整数*3+5的结果
class FunctionDemo{
public static void main(String[] args){
int x=4;
System.out.println(x*3+5);
int y=6;
System.out.println(y*3+5);
}
}
发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
为了提高代码的复用性,对代码进行抽取。
将这个部分定义成一个独立的功能,方便使用。
Java中对功能的定义是通过函数的形式来体现的。
即需要定义一个功能:完成任意整数*3+5的值。
public static int getResult(int num){
return num*3+5;
}
因此,上面的代码就可以简写为:
public class FuntionDemo{
public static void main(String[] args){
int x=getResult(4);
int y=getResult(6);
System.out.println("x="+x+",y="+y);
}
}
public static int getResult(int num){
return num*3+5;
}
//该程序运行结果为:x=17,y=23
2.函数的特点
1) 定义函数可以将功能代码进行封装。
2) 便于对该功能进行复用。
3) 函数只有被调用才会执行。
4) 函数的出现提高了代码的复用性。
5) 当函数没有具体返回值的情况,返回值类型用关键字void标识,即void代表的是函数没有具体返回值,那么该函数中的return语句如果在最后一行可以省略不写,该功能也不能在输出语句中输出,在功能中可以输出,函数直接调用。
6) 注意写法格式:
函数只能调用函数,不可以在函数内部定义函数(函数是平级的,谁也不包含谁)。
定义函数时,函数的结果应该返回给调用者,交由调用者处理。
7) 例子说明:直接打印结果,不返回值(注意对应第五个特点)
public class FuntionDemo{
public static void main(String[] args){
getResult(5);
}
public static void getResult(int num){
System.out.println(num*3+5);
return; //return可以省略不写。
}
}
//该程序运行结果为:20
3.函数的应用
1) 如何定义一个函数?
*1* 既然函数是一个独立的功能,那么先明确该功能的运算结果是什么。
*2* 再明确在定义该功能的过程中是否需要未知的内容参与运算。
*3* 定义函数时只需完成相对应的功能,将结果返回给调用者,调用者怎么使用是调用者的事情。
2)实例说明
这里以简单的加法运算为例,主要介绍函数的应用,对于函数的特点体现不是特别明确。
*1* 需求:定义一个功能,完成3+4的运算,并将结果返回给调用者。
*2* 思路:1.明确该功能的运算结果:是一个整数的和,即明确函数的返回值类型。
2.再明确在定义该功能的过程中没有未知的内容参与运算,即明确函数的参数列表(参数类型和参数个数)。
*3* 程序实现:
class FunctionDemo2{
public static void main(String[] args){
int sum=getAdd();
System.out.println("sum="+sum);
}
public static int getAdd(){
return 3+4;
}
}
*4* 结果分析:该程序运行结果为:sum=7
以上函数的功能,结果是固定的,无扩展性。
为方便用户需求,由用户来指定加数和被加数,这样功能才有意义。
*1* 需求:定义一个功能,完成任意两个整数加法的运算,并将结果返回给调用者。
*2* 思路:
功能的结果是一个整数,即返回值类型为int。
有两个未知内容参与运算,类型为int。
*3* 程序实现:
class FunctionDemo2{
public static void main(String[] args){
int sum=getAdd(3,5);
System.out.println("sum="+sum);
int sum=getAdd(6,6);
System.out.println("sum="+sum);
public static int getAdd(int a int b){
return a+b;
}
}
*4* 结果分析:该程序运行结果为:sum=8
sum=12
3)函数的具体应用实例(一)
*1* 需求:判断两个数是否相等。
*2* 思路:
功能的结果是一个boolean型变量,即返回值类型为boolean。
有两个未知内容参与运算,类型为int。
*3* 程序实现:
class FunctionDemo{
public static void main(String[] args){
compare(3,5);
System.out.println(compare(3,5));
}
public static boolean compare(int a,int b){
return (a==b)?true:false;
}
}
*4* 结果分析:该程序运行结果为:flase
4)函数的具体应用实例(二)
*1* 需求:输出两个整数中的最大值。
*2* 思路:
功能的结果是int型变量,即返回值类型为int。
有两个未知内容参与运算,类型为int。
*3* 程序实现:
class FunctionDemo{
public static void main(String[] args){
getMax(3,5);
System.out.println(getMax(3,5));
}
public static int getMax(int a,int b){
return (a>b)?a:b;
}
}
*4* 结果分析:该程序运行结果为:5
4)函数的具体应用实例(三)
*1* 需求:定义一个功能,用于打印矩形。
*2* 思路:
功能的结果直接打印,所以返回值类型是void。
有两个未知内容(矩形的行和列)参与运算,类型为int。
*3* 程序实现:
class FunctionDemo{
public static void main(String[] args){
draw(2,4);
printHr();
draw(3,6);
printHr();
}
public static void draw(int row,int col){ //实现矩形的打印功能
for(int x=0;x<row;x++){
for(int y=0;y<col;y++){
System.out.print("*");
}
System.out.println();
}
}
public static void printHr(){ //将每个矩形分割开
System.out.println("----------------------");
}
}
*4* 结果分析:该程序运行结果为:
****
****
----------------------
******
******
******
----------------------
4.函数的重载
1) 重载的概念
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。。
2) 重载的特点
与返回值类型无关,只看参数列表。
3) 重载的好处
方便于阅读,优化了程序设计。
4) 重载示例
*1*返回任意两个小数的和
int add(double a,double b){return a+b;}
*2*返回任意两个整数的和
int add(int a,int b){return a+b;}
*3*返回任意三个整数的和
int add(int a,int b,int c){return a+b+c;}
5) 重载的应用(什么时候用重载)
当定义的功能相同,但参与运算的未知内容不同时,通过参数列表的不同来区分多个同名函数。
6)重载应用实例
class FunctionOverload {
public static void main(String[] args) {
int x=add(3,6);
System.out.println(x);
int y=add(3,6,7);
System.out.println(y);
}
//定义一个加法运算,获取两个整数的和。
public static int add(int a, int b){
return a+b;
}
//定义一个加法运算,获取三个整数的和。
public static int add(int a, int b,int c){
return a+b+c;
}
}
//该程序运行结果为:9
16
Java之--Java语言基础组成—函数的更多相关文章
- Go语言基础之函数
Go语言基础之函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于“一等公民”. 函数 ...
- GO学习-(12) Go语言基础之函数
Go语言基础之函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于"一等公民 ...
- Java 语言基础之函数
函数的定义: 函数就是定义在类中的具有特定功能的一段独立小程序 函数也称为方法 函数定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...) { 执行语句; re ...
- 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1> 简单介绍一下scanf函数 这是在 ...
- C#语言基础 Main 函数中的输出输入
C# 是一门面向对象的编程语言,保留了C C++等等强大功能,但是它与 Java 非常相似,有许多强大的编程功能,它是微软(Microsoft)专门为.NET应用而开发的一门语言. 也就是人与计算机 ...
- [python学习] 语言基础—排序函数(sort()、sorted()、argsort()函数)
python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 ls = list([5, 2, 3, 1, 4]) new_ls = sorted ...
- iOS开发环境C语言基础 数组 函数
1 求数组元素的最大值 1.1 问题 创建程序,实现查询数组中最大值的功能,需求为:创建一个长度为10的数组,数组内放置10个0~99之间(包含0,包含99)的随机数作为数组内容,要求查询出数组中的最 ...
- C语言基础(13)-函数
一. 函数的原型和调用 在使用函数前必须定义或者声明函数. double circle(double r); int main() { ); printf("length = %f\n&qu ...
- OC语言基础之函数与方法
方法 1.对象方法都是以减号 - 2.对象方法的声明必须写在@interface和@end之间 对象方法的实现必须写在@implementation和@end之间 3.对象方法只能由对象来调用 ...
随机推荐
- css 射线实现方法
一个斜的四边形 .top_ad_out::before { content: ''; position: absolute; z-index: -1; width: 336px; height: 25 ...
- Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境
Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用Ope ...
- 程序员必须知道的几个国外IT网站
1.TheServerSide 这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以Java和Java周边信息为主,不过最近它也有向客户端和微软产品扩展的趋势.这个网站最初是以免 ...
- USACO Section 3.2: Sweet Butter
这题我自己是用邻接矩阵+dijskstra方法来求的,第九个例子TLE.网上看了别人的代码,是用邻接表+BFS来完成. 这里可以学到两个小技巧,邻接表的表示方法和INT_MAX的表示方法. /* ID ...
- vmware 虚拟机 桥接 设置静态 IP
最简单的方式: 图形界面下,进入设置IP的地方,设置一个静态IP. 然后再转入命令行继续工作.. 不行就 重启
- Solr的一些查询参数
fl: 是逗号分隔的列表,用来指定文档结果中应返回的 Field 集.默认为 “*”,指所有的字段. defType: 指定query parser,常用defType=lucene, defType ...
- [HIHO1223]不等式(离散化,枚举)
题目链接:http://hihocoder.com/problemset/problem/1223 这题不难,难点在于小数的处理.可以0.5为步长枚举,也可以扩大偶数倍枚举. /* ━━━━━┒ギリギ ...
- win7防火墙开启ping
默认情况下,Windows7出于安全考虑是不允许外部主机对其进行Ping测试的. 但在局域网环境中,Ping是测试网络情况的常用手段,如何允许 Windows7的ping测试回显呢? 打开: 控制面板 ...
- poj 3353 Road Construction tarjan 边双联通分支 缩点+结论
题意:一个连通的无向图,求至少需要添加几条边,救能保证删除任意一条边,图仍然是连通的. 链接:http://poj.org/problem?id=3352 思路:边的双连通图.其实就是要求至少添加几条 ...
- hdu4604 deque
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4604 思路:就是模拟一下,求每一个开始的非上升和非下降序列.然后求重复的数,由于求出来可能不会是我们想 ...