方法
方法的定义
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序代码组合方法包含于类中方法在程序中被创建,在其他地方被引用
方法有4种
* 1. 无参无返回值
* 2. 无参有返回值
* 3. 有参无返回值
* 4. 有参有返回值
public String happy(String choose){
if("旅游".equals(choose)){
return "开心";
}
return "难过";
}
return:结束方法的。
return的结果要和返回值类型相对应
1、若当前方法没有返回值类型,即返回值类型是void,那么当前方法中可以不写return
2、return即表示结束一个方法,也可以将返回值返回给调用当前方法的调用者
3、return返回值时一次只能返回一个值,不可以返回多个值
4、一个方法中可以有多个return,但被执行的只能有一个,所以需要判断
方法的优点
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 可以提高程序开发的效率。
- 提高了代码的重用性
方法的命名规则
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符下划线可能出现在方法名称中用以分隔名称的逻辑组件
修饰符 返回值类型 方法名(参数类型 参数名){
…
方法体
…
return 返回值; }
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型 :方法可能会返回值。如没有,则为void。
方法名:方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:就是参数的数据类型。
方法体:方法体包含具体的语句,定义该方法的功能。
方法的实例
例一
/** 无参无返回值方法 */
public void hello() {
System.out.print(“Hello!”);
}
例二
/** 返回两个整型变量数据的较大值 */
public int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
方法的参数传递
方法为啥需要参数传递
不同种类的豆子通过同一个豆浆机,输出不同种类的豆浆
基本数据类型和引用数据类型数据在传参时区别
-
基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。
-
引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用
构造方法
语法:
- 无返回值类型
- 方法名与类名相同
- 可以指定参数
访问修饰符 构造方法名 ( ) {
//初始化代码
}
作用
- 对象初始化
- 系统提供默认无参构造方法
构造方法重载
同一个类中
- 自定义构造方法
- 方法名相同
- 参数项不同
- 与返回值,访问修饰符无关
- 此时系统不再提供默认无参构造方法
public Student(){
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
一、带参构造方法this关键字是对一个对象的默认引用
二、这里用以区分同名成员变量
this关键字使用
this关键字到底如何使用
- 调用属性
this.health = 100;
this.name = “大黄”;
- 调用方法
this.print();
- 调用构造方法
- 调用无参构造方法
this();
- 调用有参构造方法
this(“小黑”,100,100,“雄”);
成员变量和局部变量
- 变量声明的位置决定变量作用域
- 变量作用域确定可在程序中按变量名访问该变量的区域
//…
for(int a = 0; a < 4; a++) {
System.out.println (“hello” );
}
System.out.println ( a );
//…
错误示例:a的作用域仅在for循环中
成员变量与局部变量的区别
作用域不同
- 成员变量的作用域在整个类内部都是可见的
- 局部变量的作用域仅限于定义它的方法
初始值不同
- Java会给成员变量一个初始值
- Java不会给局部变量赋予初始值
成员变量:在同一个方法中,不允许有同名局部变量在不同的方法中,可以有同名局部变量
局部变量:在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级