Java方法的简要介绍

目录

一、概述

二、方法的格式

三、方法的调用

四、JVM内存简要介绍

五、方法重载机制(Overload)


一、概述

Java中的方法就是C语言中的函数,一个方法就是一个功能单元。其中main方法由Java虚拟机(JVM)自动调用,其它的方法须得在main方法中直接或间接调用才会启动。

注意:与C语言不同的是,Java中的方法在定义时没有先后顺序之分,定义在调用的前后都行。而C语言必须满足先声明后使用的条件,如果定义在调用之后,需先手动声明一下。


二、方法的格式

         [修饰符列表]   返回值类型  方法名 (形式参数列表){

                   方法体;

         }

上面格式中的[]代表可选,也就是修饰符可以写可以不写。修饰列表中主要有public、static、protected、private、final等。

返回值类型可以是基本数据类型,也可以是引用数据类型。

public static void main(String[] args) {
        //如常见的程序入口main方法
        //public static 是修饰符,表示它是公开的静态方法
        //void是返回值类型,表示不返回值。如果是int则表示返回整形int的数值
        //main是方法名
        //String[] args是一个叫做args的字符串数组
        //花括号内的就是方法体
    }

 注意:return是用来结束方法的关键字,不是退出循环的关键字。也可以用return来结束void返回值类型的方法。结束void返回值类型的方法时后面不可以跟任何内容。


三、方法的调用

方法的调用主要是三种方式:

1.类名.方法名()

2.引用.方法名()

    引用是类实例化对像后,对像的引用。创建对象的方式是new 类名(),返回结果用变量接收时,这个变量就是引用。

3.直接用new出来的对象调用

class Test01 {
    int age;
    static String nny;
    //返回类型前没有加static修饰的方法是实例方法,必须采用引用.的方式,或者直接new对象调用
    public void insFun(){
        System.out.println("实例方法");
    }

    //下面有static修饰的是实例方法,用类名或者引用或者直接new对象都可以调用,但是建议使用类名去调用
    public static void staFun() {
        System.out.println("静态方法");
    }

    public static void main(String[] args) {
       //类名.静态方法名()
        Test01.staFun();//静态方法
        //引用.实例方法名()
        Test01 t = new Test01();//创建实例对象,t是创建的实例对象的引用
        t.insFun();//实例方法
        //直接用对象来调用
        (new Test01()).insFun();//实例方法
    }
}

四、JVM内存简要介绍

这里先简单了解一下

Java虚拟机的内存主要可以分为三大板块(具体来说有五大板块,为了方便入门先介绍三大板块):

        栈区:主要是为方法的调用开辟空间,局部变量存储的地方。

        堆区:new出来的对象都在堆区,包括数组。实例变量存储的地方。

        方法区:主要是加载进来的字节码代码块。又分为常量池和静态域。双引号括起来的字符串都放在常量池当中,各种静态变量,静态代码块都放在静态域中。不过jdk1.7中已经把原本放在方法区中的静态变量、字符串常量池等移到堆中。之后的jdk1.8直接取消了方法区。原方法区中存储的类信息、编译后的代码数据等移动到了元空间(MetaSpace)。


五、方法重载机制(Overload)

方法重载主要指的是在同一个类中,同一个方法名接收不同的参数的现象。

在实际的开发中,我们常常会遇到有很多功能相似,却因为接收的参数不同而不同的方法。Java中提供了这样的机制,可以允许方法名相同,参数列表不同的现象存在,从而使得开发更加便利。

Java区分方法首先通过方法名来区分,如果方法名相同,再通过参数列表区分。 

方法重载需要满足以下两个条件:

       1.在同一个类中同名才叫重载

       2. 同名的方法需要参数列表不同,与修饰符列表和返回值类型无关。

           参数列表不同有三种情况:

               (1)、参数类型不同

               (2)、参数顺序不同

               (3)、参数个数不同

public class Test02 {
    //方法重载需要在同一个类中,形式参数列表的个数、顺序或者类型不同
    public static void myPrint(int i){
        System.out.println("打印整形数据"+i);
    }
    
    public static void myPrint(float i){
        System.out.println("打印浮点型数据"+i);
    }
    
    public static void main(String[] args) {
        Test02.myPrint(100);
        Test02.myPrint(100.01f);
       
    }
}

 此外,Java中实际参数是基本数据类型相当于传值调用,是引用数据类型相当于传址调用,传的是地址。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值