静态方法 及值传递

您所在的位置:网站首页 静态方法可以互相调用 静态方法 及值传递

静态方法 及值传递

#静态方法 及值传递| 来源: 网络整理| 查看: 265

代码块

语句:一条语句,一行代码

代码块:任意条语句,用大括号括起来,作为整体出现

代码块决定了我们变量的作用域,代码块中定义的变量只能作用于代码块,外部定义的变量,可以在代码块中使用 方法 定义

方法就是有名字的一段代码块,方法类似于面向过程语言的函数,在面向过程语言程序就是由多个函数相互调用形成的。方法依附于类。一个类中可以定义多个方法,main就是一个静态方法,jdk官方规定了main这个静态方法作为程序的入口存在。

调用通过类或者对象来调用的。只能定义在类中,方法都是独立的,平等关系。

方法:就是完成特定需求的一段代码,有名字可以复用,使得代码更简洁,结构清晰 语法 【修饰符。。。修饰符】 返回值类型 方法名 (【数据类型 变量1,数据类型 变量2.。。】){ 语句。。。 return 返回值; } 修饰符:static,final,public,用来修饰这个方法,定义了这个方法的属性,目前public static返回值类型:void表示没有返回值,其他的任意返回都写对应的类型,可以是任意类型方法名:就是这个方法的名字,小驼峰,见名知意,在同一个类中方法名可以重复,但是如果没有特殊要求,最好不重复,调用的时候就是通过方法名参数列表:数据类型 变量1.。。,就是你调用方法所需要的变量/数据return:用来返回方法的返回值的。如果方法没有返回值,return可以省略不写,也可以写上。返回值:就是运行方法得到的数据。 调用 如果是静态方法:通过类名调用,Arrays.sort();也可以通过对象调用,在同一个类中,就可以省略类名不写,直接写方法名如果是普通方法:只能通过对象调用 分类 有参有返回 int a = nextInt(10); 有参无返回 Arrays.sort(arr); 无参有返回 int a = input.nextInt(); 无参无返回 System.out.println();

在能达到需求的同时,怎么简单/对你来讲怎么有利怎么来。

方法的三要素 返回值类型:告诉你调用之后得到的数据类型方法名:就是给这个方法起的名字参数列表:调用方法时需要的数据方法名+参数列表:方法签名 形参、实参 方法的定义:定义一个方法,从无到有,不一定调动,在调用之前就定义方法的调用:使用这个方法,运行方法形参:方法定义时写的参数实参:实际调用过程中传入的参数 值传递(*)

值拷贝:java中只有值拷贝,没有引用拷贝

基本数据类型:形参改变了,实参没有改变,基本数据类型,存在于栈内存中,方法调用过程中,将实参的值拷贝了一份给形参。此时实际形参跟实参只是值相等,在方法中修改了形参的值,实参没有动,实参作用只是拷贝了值给形参。引用数据类型:形参变了,实参也变了,引用数据类型,保存的实际是堆中数据的地址,方法调用过程中,将实参的值(地址)拷贝了一份给形参,此时实参跟形参值相等。在方法中修改了形参的值对应的堆中的数据。实参没有动,实参的作用只是拷贝了自己的值给形参,但是此时实现根据地址访问堆数据,堆数据已经改变了。 参数

实参跟形参只有值有关系,其他没有关系,就是两个参数,命名只要符合规定就可以,随意。在方法中操作的时候一定注意,是形参,操作的变量只能是它作用域能达到的。

static

静态的,修饰符,有static修饰的方法就是静态方法。static修饰变量就是静态变量。没有呢就是普通方法。

静态代码块中只能调用静态的方法或者静态变量,非静态方法中可以调用任意的。

静态的代码块或者变量都是伴随类产生的。而非静态的伴随对象。

方法的执行顺序

方法的调用:在main

方法之间互相调用形成完整的项目

方法在栈中执行。有入栈操作,开始执行,执行过程中遇到调用其他方法,被调用的方法开始入栈进行统一的操作。直到执行结束以后出栈。回到入栈的地方。(程序计数器)

方法的执行顺序跟定义的顺序没有关系。

import java.util.*; public class Demo{ public static void a() {//a入栈后开始执行 System.out.println("我是a方法的第一行");//1 b();//遇到b方法,b开始执行 System.out.println("我是a方法的第三行");//7 }//出栈 public static void b() {//b入栈 System.out.println("我是b方法的第一行");//2 c();//遇到c方法,c开始执行 System.out.println("我是b方法的第三行");//6 }//出 public static void c() {//c入栈执行 System.out.println("我是c方法的第一行");//3 d();//d入栈执行 System.out.println("我是c方法的第三行");//5 }//出栈 public static void d() {//执行 d();// a(); } public static void main(String[]args) {//入栈 a();//中途执行a,a入栈 } } 方法重载 概念:同一个类中,同名不同参的方法,就是方法的重载。同一个类中发生两个或者以上方法名必须相同参数列表不同(参数个数不同,参数类型不同):看个数,个数相同的情况下,看对应位的类型,只要一个不同同一个类不能有相同名字的方法(特殊:重载)作用:一般来说,如果同一个类中出现功能相似的方法,方法名相同更好理解,方便调用,少起名字


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3