我认为函数是指对一个或者多个功能的代码概括,将业务逻辑剥离出来的代码片段,有了方法编程就变得有结构化,在java中函数可大概分为无返回值,有返回值,static修饰的函数。
无返回值函数,就是函数在执行完以后完成了功能但是并不向程序主体返回相关数据的函数,在java中用void修饰。如下:
我们在程序中定义了一个say()函数,功能就是在调用的时候打印hello world,函数在执行完成以后并没有返回值只是打印了一句话。
在开发中函数一般都是带有参数的,有了参数的传递可以使我们的函数变得更加灵活,图一的函数只能打印hello world 但是我现在业务场景发生变化,要求要根据用户传递进来的参数进行打印该怎么办?这个时候就体现了带参函数的重要性。格式如下:
这里我们改写了say()方法,变成了say(String str),括号里边的String指明了传递进来的参数类型为字符串,str是参数名字可以随便给,但是最好通俗易懂,我们在程序调用的时候传递了java,所以最后打印的结果就是hello java。
有返回值的函数在执行完函数以后会向程序返回一个值,这个值是我们自己定义的,可以是常见的数据类型,也可以是自己封装的数据类型,有了返回值就给我带来了很大的方便。
这里我们定义了一个求和函数,可以根我们传递进来的函数值进行求和,返回值类型为int,所以我们在程序调用接收的时候需要声名一个int类型的变量con来接收,要保证返回值和接受手值类型一样才不会出错。
首先我们看上图main方法的修饰词就是static,为什么会有static这个关键字呢,作用是什么呢?我们一直在使用main方法可是我们知道里边每个参数的意思是什么吗?
首先我们来明确static关键字的作用,我们知道,当我们通过new关键字去创建对象的时候,那么数据的存储空间才会被分配,类中的成员方法才能被对象所使用。但是呢有两种特殊的情况:1、我们通过new关键字创建的对象共享同一个资源,而不是说每个对象都拥有自己的数据,或者说根本就不需要去创建对象,这个资源和对象之间是没有关系的。2、希望某个方法不与包含它的类的任何对象联系在一起。总结下来就是说:即使没有创建对象,也能使用属性和调用方法,static目的就是在于解决这个问题。
1【重点】如果使用static修饰的成员变量,这些成员称之为【静态成员变量】,这个【静态成员变量】实际存放的内存空间在【内存数据区】。【静态成员变量】和当前【类对象的内存】没有任何关系,这个【静态成员变量】的内存空间不在【堆区】 对象内存中
2. 用static修饰的成员变量,这个【静态成员变量】可以提供给多个类对象使用
3. 什么时候使用static, 真正意义上存在大量重复,并且存在一定共享基础的数据。这种 情况下,可以使用static修饰 发现:发现通过类对象来调用【静态成员变量】,报警告用static修饰【静态成员变量】应该用【静态】的方式访问 【重点】用static修饰的成员变量,这个成员变量会【早于】类对象的创建而创建,而且【晚于】类对象的销毁而销毁。所以用static修饰的【静态成员变量】是和类对象“无关的”严格来说 * 类对象和【静态成员变量】无关,那么调用类对象来调用【静态成员变量】是“非法的”ava期望的是,使用更加严谨的调用方式。