方法
方法的定义
Java方法是语句的集合,它们在一起执行一个功能。
方法是解决一类问题的步骤的有序代码组合
方法包含于类中
方法在程序中被创建,在其他地方被引用
方法的优点
1. 使程序变得更简短而清晰。
2. 有利于程序维护。
3. 可以提高程序开发的效率。
4. 提高了代码的重用性。
方法的命名规则
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符
下划线可能出现在方法名称中用以分隔名称的逻辑组件
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。
定义了该方法的访问类型。
返回值类型 :方法可能会返回值。如没有,则为void。
方法名:方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:就是参数的数据类型。
方法体:方法体包含具体的语句,定义该方法的功能。
方法的格式:
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
修饰符: public
返回值类型: 本质就是数据类型
方法名: 方法的名字(命名规范和变量的一样) 小驼峰
参数类型: 本质就是数据类型
参数名: 本质就是变量名
方法体: 就是一些java语句
return: 关键字,结束方法,一般用在返回值前面
返回值: 方法执行完以后,得到的结果。
return
return:结束方法的。
return的结果要和返回值类型相对应
public String happy(String choose){
if("旅游".equals(choose)){
return "开心";
}
return "难过";
}
注意:
1、若当前方法没有返回值类型,即返回值类型是void,那么当前方法中可以不写return
2、return即表示结束一个方法,也可以将返回值返回给调用当前方法的调用者
3、return返回值时一次只能返回一个值,不可以返回多个值
4、一个方法中可以有多个return,但被执行的只能有一个,所以需要判断
方法的参数传递
基本数据类型和引用数据类型数据在传参时区别
基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。
引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用
对象参数
如果基本数据类型作为方法的参数:其实就是将基本数据类型的值,拷贝了一份副本给了方法,方法中对这个副本的修改,不会影响到原来的值
//参数是基本数据类型
public void pl1(int score) {
score += 1;
}
如果引用数据类型作为方法的参数:其实就是将引用数据类型的地址,拷贝了一份副本给了方法,方法中对这个副本的修改,会影响到原来的值
//参数是引用数据类型
public void pl2(Student student) {
student.score += 1;
}
// 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;
}
# 构造方法
## 什么是构造方法
语法:
无返回值类型
方法名与类名相同
可以指定参数
访问修饰符 构造方法名 ( ) {
//初始化代码
}
作用
对象初始化
系统提供默认无参构造方法
构造方法重载
自定义构造方法
方法名相同
参数项不同
与返回值,访问修饰符无关
这三个在同一类中
此时系统不再提供默认无参构造方法
public Student(){
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
一、带参构造方法this关键字是对一个对象的默认引用
二、这里用以区分同名成员变量
方法重载
什么是方法重载
方法重载:
- 同一个类中
- 方法名相同
- 参数列表不同(参数个数不一样,参数的类型不一样)
- 与修饰符和返回值无关
注意事项: 构造方法也可以重载
public void say(){
System.out.println("hello");
}
public String say(int a){
return "hello";
}
public String say(String name){
return "hello "+name;
}
}
成员变量
成员变量的定义
成员变量:不在方法里的变量就是成员变量
public int a; // 成员变量
局部变量
局部变量的定义
局部变量:在方法里面的变量就是局部变量(包含参数上的变量)
public int add(int a,int b){ // a,b都是局部变量
int d =100; // d是局部变量
int c = a + b; // c是局部变量
return d;
}
成员变量和局部变量的区别
成员变量和局部变量的区别:
1 成员变量定义在类中,整个类中都可以访问
2 局部变量定义在方法中,只能在方法中使用
3 成员变量可以不给初始值,因为有默认值,局部变量必须有初始值否则报错(除了参数)
4 如果成员变量和局部变量名字一样:成员变量前面可以加this,this代表当前对象
5 我们在方法里面使用变量的时候,如果方法里面有,就用自己的,如果没有就用成员变量的,如果成员变量没有,就报错