定义:
方法: 解决问题的一种方案,他是有很多条java语句组成的
* 方法的一些特点:
* 1 方法执行的时候,可能需要原料。 原料就是 参数
* 2 方法执行完了以后,可能会给我们一个结果。 结果就是返回值
* 3 声明方法,其实就是在定义规则
*
格式:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
修饰符: public
返回值类型: 本质就是数据类型
方法名: 方法的名字(命名规范和变量的一样) 小驼峰
参数类型: 本质就是数据类型
参数名: 本质就是变量名
方法体: 就是一些java语句
return: 关键字,结束方法,一般用在返回值前面
返回值: 方法执行完以后,得到的结果。
注意事项:
1 返回值类型:跟返回值有关系;如果没有返回值,那么返回值类型就是void,然后也不用写return
2 参数类型: 跟参数有关系
3 定义方法,其实就是在定义规则。这个在方法调用的时候很关键。
方法有4种
* 1. 无参无返回值
* public void say(){
System.out.println("hello");
}
* 2. 无参有返回值
* public String grilFriend(){
return "小马哥";
}
* 3. 有参无返回值
* public void showFriend(String name){
System.out.println("老马的对象是:"+name);
}
* 4. 有参有返回值
* public int add(int a,int b){
int c = a + b;
return c;
}
*
* 方法的调用
* 1 方法想要执行,必须要调用
* 2 方法是谁执行的?方法是对象执行的
* 3 对象是哪里来的?对象是new出来的, new+方法所在的类名(); new + 构造方法()
* 4 对象调用方法: 对象.方法名(参数)
* 5 方执行的本质就是: 方法里的代码跑了一边。方法每被调用一次, 方法里的代码就执行一次。
构造方法:
* 1. 创建对象 new + 构造方法
* 2 初始化成员变量(给成员变量赋值)
有参构造方法
public Student(String name, int score) {
this.name = name;
this.score = score;
}
}
无参构造方法
public Student(){
}
方法调用的细节
方法调用的时候,到底该怎么使用参数
定义方法,其实就是在定义规则。这个在方法调用的时候很关键。
我们在定义方法的时候,定义好了参数的数据类型,那么调用的时候,必须要和定义的一样。
引用数据类型和基本数据类型
如果基本数据类型作为方法的参数:其实就是将基本数据类型的值,拷贝了一份副本给了方法,方法中对这个副本的修改,不会影响到原来的值
* 如果引用数据类型作为方法的参数:其实就是将引用数据类型的地址,拷贝了一份副本给了方法,方法中对这个副本的修改,会影响到原来的值
方法重载:
* 1. 同一个类中
* 2. 方法名相同
* 3. 参数列表不同(参数个数不一样,参数的类型不一样)
* 4. 与修饰符和返回值无关
*
* 注意事项: 构造方法也可以重载
成员变量与局部变量
* 成员变量: 不在方法里的变量就是成员变量
* 局部变量:在方法里面的变量就是局部变量(包含参数上的变量)
*
* 成员变量和局部变量的区别:
* 1 成员变量定义在类中,整个类中都可以访问
* 2 局部变量定义在方法中,只能在方法中使用
* 3 成员变量可以不给初始值,因为有默认值,局部变量必须有初始值否则报错(除了参数)
* 4 如果成员变量和局部变量名字一样:成员变量前面可以加this,this代表当前对象
* 5 我们在方法里面使用变量的时候,如果方法里面有,就用自己的,如果没有就用成员变量的,如果成员变量没有,就报错
public int a; // 成员变量
public int add(int a,int b){ // a,b都是局部变量
int d =100; // d是局部变量
int c = a + b; // c是局部变量
return d;
}
public void say(){
}
public static void main(String[] args) {
Demo07 demo07 = new Demo07();
demo07.say();
}
}