Java基础之方法
方法
某段代码经常使用,可以使用大括号将这段代码包括起来,起个名字,以后就使用这个名字来代替这段代码。
定义格式:
修饰符 返回值类型 方法名(参数列表) {
方法体语句;
return语句;
}
方法定义的解释:
修饰符:public 公共的,是一个修饰符;static 静态的,也是一个修饰符。
返回值类型:指这个方法应该有什么样的结果返回给调用者,这个结果可以是任意的数据类型,如果没有返回值,那么写成void (例如main方法,就没有返回值)。
方法名称:给这段代码起的名字。只要是一个合法的标识符即可。
参数列表:表示我要做一个功能,需要提供给我哪些数据,这些数据写在方法名后的小括号中。如果没有参数,小括号中可以什么都不写。
方法体语句:真正要完成该方法功能的执行逻辑。
方法的返回:关键字return,表示返回,将这个方法的结果返回到方法的调用者处。如果方法有返回值,return 必须写,return后面跟一个要返回的结果。这个返回的数据的数据类型必须与返回值类型一致,如果方法没有返回值,return 可以省略不写,那么在定义上,返回值类型处必须写成void。
构造方法
构造方法:构造函数,构造器,Constructor
作用:给成员变量进行赋值
构造方法的定义:
修饰符 构造方法名(参数列表) {
作用:对成员变量进行赋值;
}
构造方法说明:
构造方法名:必须与类名保持一致,严格区分大小写,符号都必须完全一样。
构造方法没有返回值类型,连void都不写。
参数列表:可以有参数,可以没有参数。
构造方法的作用:主要是给成员变量进行赋值。
静态方法
使用static修饰符修饰的方法就是静态方法,不加static修饰符的普通方法就是成员方法。
static静态是属于类的,不属于任何对象,但是可以被这个类的所有对象所使用(共享性)。
静态跟随着类(class)的加载而加载进内存,类进内存后,JVM虚拟机就会检索,类中有哪些使用static修饰的成员(成员变量,方法),将static修饰的成员加载进入到内存区域中(数据共享,静态池)。
静态的调用方式,2种:
1) 比较推荐,通过类名.静态
2) 先实例化对象,通过对象名.静态(不推荐)
方法调用
说明:
Java类文件中,JVM虚拟机,将class字节码文件放入内存中。类文件要运行执行功能,JVM只主动的调用main方法(main方法做为程序的唯一执行入口)。
main方法,由JVM主动调用的,因此运行类的时候,首先运行main方法,main方法从上到下的顺序执行。除了main方法外,其余的方法,不会主动的进行运行。
方法的调用,需要在main中进行调用,也可以在其他方法中调用。
方法定义时,参数”数据类型 变量名”的形式(形式参数)。
方法调用时,所传递的参数必须与定义时参数类型一致,参数顺序一致。
方法调用时,给的值都是实际值(实际参数)
同一个类中,方法可以直接通过方法名调用。
构造方法的调用:
当实例化对象的时候,JVM虚拟机主动调用构造方法。每次,new对象的时候,只调用一次。
定义的普通方法,可以被随意调用,但是构造方法,我们自己不能主动调用。
注意:
方法一定要定义在类的内部。
一个方法中不能再定义另外一个方法,但是可以调用方法。
方法执行结束有两种情况:
1) 执行到return 语句 2) 整个方法的内容都执行完毕
因此,方法中,return后面的语句不会被执行。
代码:
public static void main(String[] args) {
// 调用没有参数没有返回值的方法
method01();
// 调用没有参数有返回值的方法
int x = method02();
System.out.println(x);
// 调用有参数没有返回值的方法
method03(2,3);
// 调用有参数有返回值的方法
int s = method04(2,3);
System.out.println(s);
}
public static int method04(int i, int j) {
int s = i * j;
return s;
}
public static void method03(int i, int j) {
int sum = i + j;
System.out.println(sum);
}
public static int method02() {
return 0;
}
public static void method01() {
System.out.println("无参无返回值的方法");
}
方法的重载
在同一个类中,方法名相同,参数列表不同(参数类型不同;参数个数不同;参数类型的顺序不同;),与返回值类型无关。(如果方法的名称和参数列表都一样,即使返回值类型不同,也不算重载,属于方法 的重复定义。)
代码:
public static void main(String[] args) {
// 计算两个小数的和
method01(5.5,2.5);
// 计算两个整数的和
method01(5,2);
// 计算三个整数的和
method01(5,2,1);
}
public static void method01(int i, int j, int k) {
int sum = i + j + k;
System.out.println(sum);
}
public static void method01(double i, double j) {
double sum = i + j;
System.out.println(sum);
}
public static void method01(int i, int j) {
int sum = i + j;
System.out.println(sum);
}
Java基础之方法的更多相关文章
- Java基础02 方法与数据成员
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...
- Java基础——clone()方法浅析
一.clone的概念 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...
- Java基础02 方法与数据成员(转载)
对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class).同一类的对象属于相同的类型(type).我们可以定义类,并使用该定义来产生对象. 调用同一对 ...
- java基础(6):方法
1. 方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?可 ...
- Java基础之方法详解
方法的所属性 在Java的语言中,方法相当于C语言中的函数,但是它与传统的函数也有着明确的不同:在结构化的语言中,函数是一等公民,整个程序是由一个个函数组成的:但是在面向对象的语言里,类是一等公民,整 ...
- 关于java基础_方法的简单习题
package day05; import java.util.Arrays; /** * 方法作业 * @author ASUS * */ public class Demo6 { /* * 1.定 ...
- 【java基础】方法2
让形参可变的方法 jdk1.5之后,java允许定义形参长度可变的参数,允许为方法指定数量不确定的形参. package object; public class VariableParam { // ...
- Java基础--继承方法调用顺序
最近因为面试的原因,回过头来复习基础的知识,都忘光了,准备买本面试书回来啃. 我先把自己测试的结论总结写出来,以后忘记再来看看 如果b类继承自a类,在main方法中new出b的对象(不带参数),那么他 ...
- Java基础--finalize()方法
原理: 一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法,并在下一次垃圾回收动作发生时,才会真正回收对象占用的内存. 用途: 1)释放通过某种创建对象方式以外的方式为对 ...
- [ 转载 ] Java基础13--equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...
随机推荐
- OSGEarth环境搭建
1.下载OsgEaarth2.8源码 https://codeload.github.com/gwaldron/osgearth/legacy.zip/osgearth-2.8 2.下载perl 编译 ...
- 给你的 GitHub Repository 加上 sponsor 按钮
「本文微信公众号 AndroidTraveler 首发」 背景 其实之前 GitHub 就已经说过要给开源的开发者提供赞助支持. 当你进入 GitHub 主页时,你会在右边发现一个 Tips. 点击进 ...
- Java入门网络编程-使用UDP通信
程序说明: 以下代码,利用java的网络编程,使用UDP通信作为通信协议,描述了一个简易的多人聊天程序,此程序可以使用公网或者是局域网进行聊天,要求有一台服务器.程序一共分为2个包,第一个包:udp, ...
- Spring Framework 组件注册 之 @Import
Spring Framework 组件注册 之 @Import 写在前面 向spring中注册组件或者叫javaBean是使用spring的功能的前提条件.而且spring也提供了很多种方式,让我们可 ...
- 一文秒懂CPU使用率
目录 CPU:Cores, and Hyper-Threading 超线程(Hyper-Threading ) 多核(multi-cores) CPU使用率计算 CPU使用率测试 如何计算CPU使用 ...
- 【Netty整理01-快速入门】Netty简单使用Demo(已验证)
多处摘抄或手打,为了十积分厚着脸皮标为原创,惭愧惭愧~本篇文章用于快速入门搭建一个简单的netty 应用,如想稍微深入系统的了解,请参照本人下一篇博客,链接: 参考地址: 官方文档:http://ne ...
- Ajax出现error常见情况(详细版)-火狐浏览器(Firefox)兼容性问题
作为一个程序员,遇到兼容性问题真的很苦恼,尤其是对我这种前端小菜鸡来说遇到了甚是凄惨.一般来说兼容性问题出现率Chrome < IE < Firefox (╯°Д°)╯︵┴┴ . 言归正 ...
- 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus
前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...
- JAVA增强for循环
作用:简化数组和集合的遍历 格式:for(元素数据类型 变量 :数组或者集合) 例子: Map map=new HashMap; for(Object obj :map.keySet()){ Obj ...
- Filebeat 7.1.1 安装及使用(连接ES)
1. 下载 & 解压 # 下载 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.1.1-linux- ...