静态方法:有static修饰的方法。

非静态方法:没有static修饰的方法。

  1. 方法调用:

一静态方法调用 静态方法/属性

1)一个类:直接调用。

2)不同类/不同文件:

a: 类名.属性名/方法名

b:实例化对象。  类名 对象名 = new类名();

对象名. 属性/方法

二静态调用 非静态方法/属性

都先实例化对象。     类名 对象名 = new类名();

对象名. 属性名/方法名

一非静态调用静态方法

二非静态调用非静态方法

1)同一类中:直接调用

2)不同类中:

a: 类名 . 方法(只能是静态属性)

b:实例化对象

总结:可直接调用的三种情况

1.一个类中 静态调静态 。

2. 一个类中 非静态调用 静态/非静态。

3. 静态     类名.静态属性/静态方法。

public class Demo03{
int age;
public static void main(String []args){
System.out.println(Demo04.name);//静态调用静态1
Demo04.eat(); Demo04 d = new Demo04();//静态调用静态2
System.out.println(d.name);
d.eat(); Demo03 d1 = new Demo03();//静态调用非静态
d1.method();
System.out.println(d1.age);
}
public void method(){
System.out.println("first method");
} }
 public class Demo04{
static String name = "张三"; public static void eat(){
System.out.println("肉夹馍");
}
}
 public class Demo05{
static int age;
String name;
public static void main(String []args){ Demo05 d1 = new Demo05();//静态调非静态 实例化
d1.method();
} public void method(){
System.out.println(age); //非静态调静态
method1(); //非静态调静态
System.out.println(name);//非静态调非静态
method2(); //非静态调非静态
System.out.println("first method");
}
public static void method1(){
System.out.println("second method");
}
public void method2(){
System.out.println("third method");
}
}
 public class Demo06{

     public static void main(String []args){

         Demo06 d1 = new Demo06();   //静态调非静态  实例化
d1.method();
}
public void method(){
System.out.println(Person.name); //非静态调静态
Person.method1(); //非静态调静态
Person p = new Person(); //非静态调非静态 实例化
p.method2();
System.out.println("first method");
}
}
class Person{
static String name;
int age;
public static void method1(){
System.out.println("second method");
}
public void method2(){
System.out.println("third method");
}
}
 public class Demo09{
//实参到形参是单向的,所以在传递过程中形参值发生改变不会影响实参
public static void main(String []args){
int i =1;
String s = "ww";
Demo09 d = new Demo09();
d.method(i,s);
System.out.println(i);
System.out.println(s);
}
public void method(int i,String s){
i = 100;
s = "asd";
}
public void method1
}
public class ChuanDiZhi{
int x = 3;
public static void main(String args[]){
ChuanDiZhi p = new ChuanDiZhi();
p.x = 9;
show(p);
System.out.println(p.x);
}
public static void show(ChuanDiZhi p){
p.x = 4;
}
}

有无返回值

有void修饰,无返回值

int------------------>return  int  类型的值

string-------------->return String类型的值

数据类型-------->return 当前数据类型值

返回类、集合、流等

方法的返回值类型必须和return之后的值数据类型一样

方法传递参数

形参:形式参数,在定义方法时所携带的参数。

实参:实际参数,方法调用时所传入的参数。

形参和实参的区别:

1形参只有在被调用的时候,才分配内存单元,在调用结束时立即释放内存单元

形参只在当前方法内部有效

2实参可以是常量、变量、表达式、方法 等。但是在进行方法调用前,必须要有确定的值。

3形参和实参在顺序、类型、长度、必须一致。

4实参到形参是单向的,

参数的传值方式

1值传递:在运行函数时,形参和实参在不同的内存位置之中,形参将实参的值复制一份。在函数运行结束时,形参被释放,实参的值不会发生改变。

2地址传递:在运行函数时,传给形参的是实参的地址,那么形参被修改时,实参也会发生改变。

java方法调用及传参的更多相关文章

  1. java方法中,传参是传值还是传址问题(对比C语言、C#和C++)

    问题引出: 编写一个简单的交换值的小程序,如果我们只是简单地定义一个交换函数接收两个数,在函数内部定义一个中间变量完成交换.那么当我们把a,b两个实参传给这个函数时,往往得不到预期的结果.这是为什么呢 ...

  2. python 传入任意多个参数(方法调用可传参或不传参)

    1.可传参数与不传参数,在定义中给参数设置默认值 class HandleYmal: """ 获取测试环境的配置 """ def __ini ...

  3. Js调用Java方法并互相传参

    Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...

  4. 难道同事:Java 方法调用到底是传值还是传引用

    Java 方法调用中的参数是值传递还是引用传递呢?相信每个做开发的同学都碰到过传这个问题,不光是做 Java 的同学,用 C#.Python 开发的同学同样肯定遇到过这个问题,而且很有可能不止一次. ...

  5. 难住了同事:Java 方法调用到底是传值还是传引用

    Java 方法调用中的参数是值传递还是引用传递呢?相信每个做开发的同学都碰到过传这个问题,不光是做 Java 的同学,用 C#.Python 开发的同学同样肯定遇到过这个问题,而且很有可能不止一次. ...

  6. vue:子组件通过调用父组件的方法的方式传参

    在本案例中,由于子组件通过调用父组件的方法的方式传参,从而实现修改父组件data中的对象,所以需要啊使用$forceUpdate()进行强制刷新 父组件: provide() { return { s ...

  7. Java方法调用机制

    最近在编程时,修改方法传入对象的对象引用,并没有将修改反映到调用方法中.奇怪为什么结果没有变化,原因是遗忘了Java对象引用和内存分配机制.本文介绍3个点: ① 该问题举例说明 ② 简要阐述Java内 ...

  8. 第47篇-解释执行的Java方法调用native方法小实例

    举个小实例,如下: public class TestJNI { static { // 程序在加载时,自动加载libdiaoyong.so库 System.loadLibrary("dia ...

  9. 脚本语言丨Batch入门教程第四章:调用与传参

    今天是Batch入门教程的最后一章内容:调用与传参.相信通过前面的学习,大家已经掌握了Windows Batch有关的基础知识和编程方法,以及利用Windows Batch建立初级的编程思维方式.今后 ...

随机推荐

  1. Chrome打开标签页预览

    类似于Microsoft Edge浏览器上的标签页缩略图预览非常方便,其实现在谷歌浏览器正在测试相关的功能,如果想提前体验,就在地址栏输入"chrome://flags"并按下回车 ...

  2. secureCRT安装,破解,连接linux机器(含安装包)

    1. 为什么需要安装secureCRT 我们的项目运行在服务器上,如果出现什么问题,或者升级的时候,需要对服务器进行操作,把处理好的项目发布到服务器上.如果我们就在服务器身边,那么直接在服务器上进行操 ...

  3. php页面出现空白解决方法

    查询php程序使用内存情况 $size = memory_get_usage(); file_put_contents("d:/data.php", var_export($siz ...

  4. Redis设计与实现 -- 链表与字典

    1. 链表 1.1 链表的结构 在 Redis 中,链表的实现是双向链表,除此之外与常规的链表不同的是它还有三个函数指针,dup 函数用于复制链表节点所保存的值,free 函数用于释放链表节点保存的值 ...

  5. NGUI多行输入框和滚动条结合使用(text list script 和scroll bar script)

    一,我们添加一个label,如下图:将label属性设置 二,给label添加一个box collider.然后在add component 添加test list,如下图: 三,添加一个脚本Test ...

  6. Vue PC端图片预览插件

    *手上的项目刚刚搞完了,记录一下项目中遇到的问题,留做笔记: 需求: 在项目中,需要展示用户上传的一些图片,我从后台接口拿到图片url后放在页面上展示,因为被图片我设置了宽度限制(150px),所以图 ...

  7. Ajax异步请求返回文件流(eg:导出文件时,直接将导出数据用文件流的形式返回客户端供客户下载)

    在异步请求中要返回文件流,不能使用JQuery,因为$.ajax,$.post 不支持返回二进制文件流的类型,可以看到下图,dataType只支持xml,json,script,html这几种格式,没 ...

  8. 解决Layui数据表格中checkbox位置不居中

    1.情景 使用方法渲染的方式生成数据表格,添加了checkbox,但发现checkbox位置不居中,如下图所示  2.解决办法 通过layui官方社区,找到如下代码,只需要添加如下样式即可解决 < ...

  9. mysql的锁

    前言 mysql锁的概念参考如下连接: 1.http://blog.csdn.net/u013063153/article/details/53432468 2.http://www.yesky.co ...

  10. Mysq修改引擎

    [数据库]Mysql更改默认引擎为Innodb的步骤方法   前言 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定. 基本的差别为:MyI ...