二、方法回顾和加深
1.方法的定义:
修饰符
返回类型
break(跳出switch,结束循环)和return(结束方法)区别
方法名:注意规范,见名知意
参数列表:(参数类型 参数名) …可变长参数
异常抛出
package com.oop.demo01;
//Demo01类
public class Demo01 {
//main方法
public static void main(String[] args) {
}
/*
修饰符 返回值类型 方法名(...){
//方法体
return 返回值;
}
*/
//return结束方法,返回一个结果
public String sayHello() {
return "Hello World!";
}
public void print() {
return;
}
public int max(int a, int b) {
return a > b ? a : b;//三元运算符
}
}
2.方法的调用:
静态方法
非静态方法
形参和实参
值传递和引用传递
this关键字
1)静态方法:
//Student.java
package com.oop.demo01;
//学生类
public class Student {
//静态方法
public static void stusay(){
System.out.println("Students");
}
}
//Demo02.java
package com.oop.demo01;
public class Demo02 {
public static void main(String[] args) {
//静态方法 static
Student.stusay();
}
}
2)非静态方法:
//Stuudent.java
package com.oop.demo01;
//学生类
public class Student {
//非静态方法
public void stusay() {
System.out.println("Students");
}
}
//Demo.java
package com.oop.demo01;
public class Demo02 {
public static void main(String[] args) {
//非静态方法 要实例化new
//对象类型 对象名 = 对象值
Student student = new Student();
student.stusay();
}
}
一个类中,两个静态方法可以互相调用,两个非静态方法可以互相调用;但是一静态方法不能调用非静态方法。
静态方法,和类一起加载的(早)
非静态方法,类实例化后,才会存在(晚)
3)实参与形参
实际参数:实际传递的参数
形式参数:只是参数的名字,在方法定义中
4)值传递与引用传递
值传递(Javaa是值传递)
package com.oop.demo01;
//值传递
public class Demo03 {
public static void main(String[] args) {
int a = 1;
System.out.println(a);//1
Demo03.change(a);
System.out.println(a);//1
}
//返回值为空
public static void change(int a) {
a = 10;
}
}
引用传递:
package com.oop.demo01;
//引用传递:对象,本质上还是值传递
public class Demo04 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//null
Demo04.change(person);
System.out.println(person.name);//宇宙洪荒
}
public static void change(Person a) {
//a是一个对象,只想一个具体的Person
a.name = "宇宙洪荒";
}
}
//定义了Person类,有一个属性name
class Person {
String name;
}