函数的定义:
函数就是定义在类中的具有特定功能的独立程序。
函数也可称为方法。
关键字解释
public 意为权限
static 意为静态。
以上两个关键字也叫修饰符。
函数的具体格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2...)
{
执行语句;
return 返回值;
}
注意:
函数名命名时,如果名称由多个单词组成,除第一个单词首字母小写以外,剩下的单词首字母都得大写。
这是规范,以后上班的时候会这样要求。
函数是我们定义的一个功能,方便我们使用的时候调用,
既然叫函数,就是一个独立的函数区间,不能写在主函数内
而主函数是静态的,我们调用的时候是在主函数调用。
所以,定义的功能函数也得是静态的,我们则必须加上
static关键字,public目前可写可不写。
比如,我们定义一个加法功能的函数。*/
int c=yuer(6,7); //这里就是调用函数里的功能,初始值在这里赋予,运算所得的结果赋值给C变量。
System.out.println("c="+c);
linghan();//函数调用在主函数内。
linghan();
add(3,4);//调用的时候给出具体的行和列数值,直接输出在控制台,也就是DOS命令行上。
add(4,5);
boolean yinyin=acc(3,4);
System.out.println("yinyin="+yinyin);
boolean huanjie=abb(5,5);
System.out.println("huanjie="+huanjie);
boolean tangyi=aee(7,6);
System.out.println("tangyi="+tangyi);
int x=orange(5,6);
System.out.println("x="+x);
zhengYu();
char suini=tangLu(50);
System.out.println("这个同学分数对应的等级是"+suini);
int ade=tangShan(4,5,1024);
System.out.println(ade);
CFB();
}
public static int yuer(int a,int b)//yuer是函数名。
{
return a+b;//return是关键字,意为返回。这里定义的就是具体的功能。
}
/*特殊情况:
定义的函数功能没有具体的返回值。这时return的后面直接用分号来结束。
因为没有具体的返回值,所以不能写具体的返回值类型。
返回值类型用void来表示。
比如: */
public static void linghan()//void关键字表示无返回值类型函数、
{//注意:如果返回值类型是void,那么函数中的return可以省略不写。
//不过写上也不算错。
System.out.println("《月球上的人》");
return;
}
/*函数的特点:
1.定义函数可以将功能代码进行封装。
2.便于对该功能进行封装。
3.函数只有被调用才会被执行。
4.函数的出现提高了代码的复用性。
注意:函数中只能调用函数,不可以在函数内部定义函数。
练习题1
画一个矩形打印在控制台。
因为是矩形,且直接打印在控制台,所以没有具体的返回值类型,关键字是void。*/
public static void add(int a ,int b)//a,b代表矩形的行和列。
{
for (int d=1;d<=a;d++ )//函数内部可以用循环结构。
{
for (int e=1;e<=b ;e++ )//因为我们不确定具体的行和列是多少,所以用变量来作为区间限定。
{
System.out.print("*");
}
System.out.println();
}
return;//可省略不写。
}
/*练习题二
判断两个数是否相等。
*/
public static boolean acc(int a,int b)
{
if (a==b)
{
return true;
}
else
{
return false;
}
}
//上面的if语句我们还可以用三元运算符来进行。
public static boolean abb(int a,int b)
{
return (a==b)?true:false;
}
//因为boolean类型的结果只能是true或false,所以我们还可直接写作:
public static boolean aee(int a,int b)
{
return a==b;
}
/*练习题三
获取两个数中较大的那个数。*/
public static int orange(int a ,int b)
{
if (a>b)
{
return a;
}
else
{
return b;
}
//也可写作:return (a>b)?a:b;
}
/*注意:
定义函数的时候,一定要明确两点。
1.该函数功能的结果是什么
2.该功能在实现过程中是否需要未知内容参与运算。
练习题四,
打印99乘法表。*/
public static void zhengYu()
{
for (int a=1;a<=9 ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
/*练习题五
根据成绩获取学生分数对应的等级
90-100 A
80-89 B
70-79 C
60-69 D
60以下 E
等级的值是一个字母,刚好是char型*/
public static char tangLu(int No)
{
if (No>=90&&No<=100)
{
return 'A';
}
else if (No>=80&&No<=89)
{
return 'B';
}
else if (No>=70&&No<=79)
{
return 'C';
}
else if (No>=60&&No<=69)
{
return 'D';
}
else
return 'E';
}
/*函数的重载:
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或参数类型不同即可。
比如: */
public static int tangShan(int a,int b)
{
return a+b;
}
//这是两个整数的相加函数。
public static double tangShan(double a,double b)
{
return a+b;
}
//这是两个小数的相加函数。
public static int tangShan(int a,int b,int c)
{
return a+b+c;
}
//这是三个整数相加的函数。
/*在调用的时候Java会根据调用的数值来确定具体该引用哪一组函数功能来执行。
虽然都求的是和,虽然都是同名的函数。但这并不会编译运行失败。
重载练习
打印99乘法表,
假设用户的需求是,输入到几就打印到几,如果没有输入,就默认到9,即标准乘法表。*/
public static void CFB(int c)
{
for (int a=1;a<=c ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
//这是给用户输入的乘法表,输入几就打印到几,下面要做的是打印标准乘法表、
public static void CFB()
{
for (int a=1;a<=9 ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
/*只要主函数调用的时候没有输入具体的值,我们就默认打印标准乘法表,如果输入具体的值
我们就打印到具体的数值
但是这样写的话代码的复用性会比较差,所以我们可以将第二个函数的代码直接引用第一个函数的代码。
就像这样
public static void CFB()
{
CFB(9);
}
函数就是定义在类中的具有特定功能的独立程序。
函数也可称为方法。
关键字解释
public 意为权限
static 意为静态。
以上两个关键字也叫修饰符。
函数的具体格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2...)
{
执行语句;
return 返回值;
}
注意:
函数名命名时,如果名称由多个单词组成,除第一个单词首字母小写以外,剩下的单词首字母都得大写。
这是规范,以后上班的时候会这样要求。
函数是我们定义的一个功能,方便我们使用的时候调用,
既然叫函数,就是一个独立的函数区间,不能写在主函数内
而主函数是静态的,我们调用的时候是在主函数调用。
所以,定义的功能函数也得是静态的,我们则必须加上
static关键字,public目前可写可不写。
比如,我们定义一个加法功能的函数。*/
int c=yuer(6,7); //这里就是调用函数里的功能,初始值在这里赋予,运算所得的结果赋值给C变量。
System.out.println("c="+c);
linghan();//函数调用在主函数内。
linghan();
add(3,4);//调用的时候给出具体的行和列数值,直接输出在控制台,也就是DOS命令行上。
add(4,5);
boolean yinyin=acc(3,4);
System.out.println("yinyin="+yinyin);
boolean huanjie=abb(5,5);
System.out.println("huanjie="+huanjie);
boolean tangyi=aee(7,6);
System.out.println("tangyi="+tangyi);
int x=orange(5,6);
System.out.println("x="+x);
zhengYu();
char suini=tangLu(50);
System.out.println("这个同学分数对应的等级是"+suini);
int ade=tangShan(4,5,1024);
System.out.println(ade);
CFB();
}
public static int yuer(int a,int b)//yuer是函数名。
{
return a+b;//return是关键字,意为返回。这里定义的就是具体的功能。
}
/*特殊情况:
定义的函数功能没有具体的返回值。这时return的后面直接用分号来结束。
因为没有具体的返回值,所以不能写具体的返回值类型。
返回值类型用void来表示。
比如: */
public static void linghan()//void关键字表示无返回值类型函数、
{//注意:如果返回值类型是void,那么函数中的return可以省略不写。
//不过写上也不算错。
System.out.println("《月球上的人》");
return;
}
/*函数的特点:
1.定义函数可以将功能代码进行封装。
2.便于对该功能进行封装。
3.函数只有被调用才会被执行。
4.函数的出现提高了代码的复用性。
注意:函数中只能调用函数,不可以在函数内部定义函数。
练习题1
画一个矩形打印在控制台。
因为是矩形,且直接打印在控制台,所以没有具体的返回值类型,关键字是void。*/
public static void add(int a ,int b)//a,b代表矩形的行和列。
{
for (int d=1;d<=a;d++ )//函数内部可以用循环结构。
{
for (int e=1;e<=b ;e++ )//因为我们不确定具体的行和列是多少,所以用变量来作为区间限定。
{
System.out.print("*");
}
System.out.println();
}
return;//可省略不写。
}
/*练习题二
判断两个数是否相等。
*/
public static boolean acc(int a,int b)
{
if (a==b)
{
return true;
}
else
{
return false;
}
}
//上面的if语句我们还可以用三元运算符来进行。
public static boolean abb(int a,int b)
{
return (a==b)?true:false;
}
//因为boolean类型的结果只能是true或false,所以我们还可直接写作:
public static boolean aee(int a,int b)
{
return a==b;
}
/*练习题三
获取两个数中较大的那个数。*/
public static int orange(int a ,int b)
{
if (a>b)
{
return a;
}
else
{
return b;
}
//也可写作:return (a>b)?a:b;
}
/*注意:
定义函数的时候,一定要明确两点。
1.该函数功能的结果是什么
2.该功能在实现过程中是否需要未知内容参与运算。
练习题四,
打印99乘法表。*/
public static void zhengYu()
{
for (int a=1;a<=9 ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
/*练习题五
根据成绩获取学生分数对应的等级
90-100 A
80-89 B
70-79 C
60-69 D
60以下 E
等级的值是一个字母,刚好是char型*/
public static char tangLu(int No)
{
if (No>=90&&No<=100)
{
return 'A';
}
else if (No>=80&&No<=89)
{
return 'B';
}
else if (No>=70&&No<=79)
{
return 'C';
}
else if (No>=60&&No<=69)
{
return 'D';
}
else
return 'E';
}
/*函数的重载:
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或参数类型不同即可。
比如: */
public static int tangShan(int a,int b)
{
return a+b;
}
//这是两个整数的相加函数。
public static double tangShan(double a,double b)
{
return a+b;
}
//这是两个小数的相加函数。
public static int tangShan(int a,int b,int c)
{
return a+b+c;
}
//这是三个整数相加的函数。
/*在调用的时候Java会根据调用的数值来确定具体该引用哪一组函数功能来执行。
虽然都求的是和,虽然都是同名的函数。但这并不会编译运行失败。
重载练习
打印99乘法表,
假设用户的需求是,输入到几就打印到几,如果没有输入,就默认到9,即标准乘法表。*/
public static void CFB(int c)
{
for (int a=1;a<=c ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
//这是给用户输入的乘法表,输入几就打印到几,下面要做的是打印标准乘法表、
public static void CFB()
{
for (int a=1;a<=9 ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
/*只要主函数调用的时候没有输入具体的值,我们就默认打印标准乘法表,如果输入具体的值
我们就打印到具体的数值
但是这样写的话代码的复用性会比较差,所以我们可以将第二个函数的代码直接引用第一个函数的代码。
就像这样
public static void CFB()
{
CFB(9);
}