方法

  某段代码经常使用,可以使用大括号将这段代码包括起来,起个名字,以后就使用这个名字来代替这段代码。

  定义格式:

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

    方法体语句;

       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基础之方法的更多相关文章

  1. Java基础02 方法与数据成员

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...

  2. Java基础——clone()方法浅析

    一.clone的概念 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  3. Java基础02 方法与数据成员(转载)

    对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class).同一类的对象属于相同的类型(type).我们可以定义类,并使用该定义来产生对象.   调用同一对 ...

  4. java基础(6):方法

    1. 方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?可 ...

  5. Java基础之方法详解

    方法的所属性 在Java的语言中,方法相当于C语言中的函数,但是它与传统的函数也有着明确的不同:在结构化的语言中,函数是一等公民,整个程序是由一个个函数组成的:但是在面向对象的语言里,类是一等公民,整 ...

  6. 关于java基础_方法的简单习题

    package day05; import java.util.Arrays; /** * 方法作业 * @author ASUS * */ public class Demo6 { /* * 1.定 ...

  7. 【java基础】方法2

    让形参可变的方法 jdk1.5之后,java允许定义形参长度可变的参数,允许为方法指定数量不确定的形参. package object; public class VariableParam { // ...

  8. Java基础--继承方法调用顺序

    最近因为面试的原因,回过头来复习基础的知识,都忘光了,准备买本面试书回来啃. 我先把自己测试的结论总结写出来,以后忘记再来看看 如果b类继承自a类,在main方法中new出b的对象(不带参数),那么他 ...

  9. Java基础--finalize()方法

    原理: 一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法,并在下一次垃圾回收动作发生时,才会真正回收对象占用的内存. 用途: 1)释放通过某种创建对象方式以外的方式为对 ...

  10. [ 转载 ] Java基础13--equals方法

    一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...

随机推荐

  1. Spring的Bean的生命周期

    一:生命周期执行的过程如下:1) spring对bean进行实例化,默认bean是单例.2) spring对bean进行依赖注入.3) 如果bean实现了BeanNameAware接口,spring将 ...

  2. Scala 学习之路(一)—— Scala简介及开发环境配置

    一.Scala简介 1.1 概念 Scala全称为Scalable Language,即“可伸缩的语言”,之所以这样命名,是因为它的设计目标是希望伴随着用户的需求一起成长.Scala是一门综合了面向对 ...

  3. 修改npm默认安装路径

    npm config ls npm config set prefix D:\ag\npm

  4. MAC subline批处理

    代码块批量操作: command + A command + shift + L command + < command + > 按照":"进行换行操作: commd ...

  5. 你需要知道的c# Timer 的垃圾回收机制。

    通常我们需要定时执行一段任务的时候,我们就需要定时器,这时我们就可以使用c# System.Threading空间中的 Timer定时器;他是个异步定时器,时间到时每次都是在线程池中分配一个线程去执行 ...

  6. Codeforces Round #565 (Div. 3) B

    B. Merge it! 题目链接:http://codeforces.com/contest/1176/problem/B 题目 You are given an array a consistin ...

  7. pytorch实现yolov3(4) 非极大值抑制nms

    在上一篇里我们实现了forward函数.得到了prediction.此时预测出了特别多的box以及各种class probability,现在我们要从中过滤出我们最终的预测box. 理解了yolov3 ...

  8. 03_javaSE面试题:类初始化和实例初始化

    题目 下面代码运行的结果是什么? Father 类 /** * @author kevin * @date 2019/7/8 15:48 */ public class Father { privat ...

  9. C++ 洛谷 P1879 [USACO06NOV]玉米田Corn Fields

    没学状压DP的看一下 合法布阵问题  P1879 [USACO06NOV]玉米田Corn Fields 题意:给出一个n行m列的草地(n,m<=12),1表示肥沃,0表示贫瘠,现在要把一些牛放在 ...

  10. Numpy之数组创建

    ndarray 数组除了可以使用 ndarray 构造器来创建外,也可以通过如下方式创建. 一.创建数组 numpy.empty 语法: numpy.empty(shape, dtype = floa ...