黑马程序员--JAVA中的方法(函数)


----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

1,函数概述:

在每一个计算机语言中都有函数的影子,JAVA也不例外,不过在Java中不再叫函数而是改为叫方法了,不过我们还是把它当作函数来讲

函数定义:程序中特定的一段功能小程序

2,函数格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,。。)
{  执行语句;
 return 返回值;
}

修饰符:用来修饰函数权限的,有public,private,protract

返回值类型为函数运行后的数据类型,

参数类型为形参的数据类型,

形式参数也就是形参,它就是个非确定值的变量,这里与形参相比较的实参则是确定的参数

retuen :如果你的返回值类型为VOID则不需要进行return的

3,函数的特点

1,定义函数可以将功能代码进行封装,体现了Java的封装性
2,定义函数可以提高代码的复用性,便于使用,可对功能进行复用
3,函数需要被调用才能被执行,否则就是一段没用的代码
4,无返回值类型的函数用void修饰,这样就可以省略函数中的return
5,函数中不可以定义函数(内部类除外),但函数之间可以互相调用

4,函数的作用

作为主函数:
1,确保该程序的运行
2,1个程序的入口,没有主函数就没法找到入口,那程序就失效了
3,在JVM中被调用
其他函数:
1,用于定义功能
2,进行封装,提高代码的复用性
注意:函数中只能调用函数,不能定义函数,函数名要明确,这样可以增加代码的阅读性

5,函数的应用

1,两个明确:

明确定义的功能最后的结果是什么?
明确在定义该功能的过程中是否需要未知内容参与运算

2,示例

修改前
class FunctionDemo   
{  
    public static void main(String[] args)  
    {  
        int x = 4;  
        System.out.println(x*3+5);  
        x = 6;  
        System.out.println(x*3+5);  
        int y = 4*3+5;  
        int z = 6*3+5;  
        System.out.println(y);  
        System.out.println(z);  
    }  
}
     发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
为了提高代码的复用性。对代码进行抽取。将这个部分定义成一个独立的功能。方便与日后使用。
java中对功能的定义是通过函数的形式来体现的。
明确功能:需要定义功能,完成一个整数的*3+5的运算,
1,先明确函数定义的格式。
    /*
    修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,)
    {
           执行语句;
           return 返回值;
    }
修改后
class FunctionDemo   
{  
 public static void getResult(int num)  
    {  
        System.out.println(num * 3 + 5);  
        return;//可以省略  
    }  
public static void main(String[] args)  
    {  
        getResult(5);  
    }  
}  

3,练习

class  FunctionTest  
{  
    public static void main(String[] args)   
    {  
draw(5,6);  
        printHr();  
        draw(7,9);  
        printHr();  
        print99();  
    }  
    /* 
    定义一个功能,用于打印矩形。 
    思路: 
    1,确定结果:没有,因为直接打印。所以返回值类型是void 
    2,有未知内容吗?有,两个,因为矩形的行和列不确定。 
    */  
    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("------------------------------");  
    }  
    /* 
    定义一个打印99乘法表功能的函数。 
    */  
    public static void print99()  
    {  
        for(int x=1; x<=9; x++)  
        {  
            for(int y=1; y<=x; y++)  
            {  
                System.out.print(y+"*"+x+"="+y*x+"\t");  
            }  
            System.out.println();  
        }  
    }  
}  

6,函数的重载

1,定义:

在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。

2,特点:

与返回值类型无关,只看参数列表。

3,好处:

方便与阅读,优化了程序设计。

4,重载示例

    返回两个整数的和
int add(int x,int y){return x+y;}
   返回三个整数的和
int add(int x,int y, int z){return x+y+z;}
   返回两个小数的和
double add(double x,double y){return x+y;}

5,重载范例

class FunctionOverload   
{  
    public static void main(String[] args)   
    {  
        add(4,5);  
        add(4,5,6);  
        print99();  
    }  
    public static void print99(int num)  
    {  
        for(int x=1; x<=num; x++)  
        {  
            for(int y=1; y<=x; y++)  
            {  
                System.out.print(y+"*"+x+"="+y*x+"\t");  
            }  
            System.out.println();  
        }  
    }  
    //打印99乘法表  
    public static void print99()  
    {  
        print99(9);  
    }  
    //定义一个加法运算,获取两个整数的和。  
    public static int add(int x,int y)  
    {  
        return x+y;  
    }  
    //定义一个加法,获取三个整数的和。  
    public static int add(int x,int y,int z)  
    {  
        return add(x,y)+z;  
    }  
}  
区分是否重载只要看参数列表,和返回值类型无关
void show(int a,char b,double c){}  
下面的a,b,c,d,e,f与上述一句的区别:  
a.  
void show(int x,char y,double z){}//没有,因为和原函数一样。  
b.  
int show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。  
c.  
void show(int a,double c,char b){}//重载,因为参数类型不同。注意:重载和返回值类型没关系。  
d.  
boolean show(int c,char b){}//重载了,因为参数个数不同。  
e.  
void show(double c){}//重载了,因为参数个数不同。  
f.  
double show(int x,char y,double z){}//没有,这个函数不可以和给定函数同时存在与一个类中。

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值