回顾方法及加深
-
方法的定义
1.修饰符 // public
2.返回类型 // int数值类型、void、 String字符串类型
3.break:跳出switch,结束循环
return:结束方法,返回一个结果 结果可能为空 也可能为任意一个类型
4.方法名: 注意规范就ok,借名知意
5.参数列表: 参数类型,参数名
6.异常抛出:疑问,后面再来写
-
方法的调用:递归
-
非静态方法
//学生类 public class Student { //方法 public void say(){ System.out.println("学生说话了"); }
public class Demo02 { public static void main(String[] args) { //实例化这个类 //对象类型 对象名字 = 对象的值 Student student = new Student(); //new Student(); student.say(); }
静态方法
//学生类 public class Student { //方法 public static void say(){ System.out.println("学生说话了"); } }
public static void main(String[] args) { //静态方法 static Student.say(); }
// 和类一起加载的 public static void a(){ //两个非静态可以互相调用是因为它们的类实例化后两个一起被创建 //两个静态方法也可以互相调用 } //类实例化 之后才存在 public static void b(){ a(); }
2.实际参数和形式参数
public static void main(String[] args) { //实际参数和形式参数的类型要对应! int add = Demo03.add(1, 2); System.out.println(add); } public static int add(int a,int b){ //int a,int b形式参数 return a+b; }
3.值传递和引用传递
//值传递 public class Demo04 { public static void main(String[] args) { int a = 1; System.out.println(a); Demo04.change(a); System.out.println(a); } //返回值为空 //实际参数可以改变形式参数 形式参数不可以改变实际参数 public static void change(int a){ a= 10; }
//引用传递:对象,本质还是值传递 //对象 内存! public class Demo05 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name);//null Demo05.change(person); System.out.println(person.name); } public static void change(Person person){ //person是一个对象:指向的 --->Person person = new Person();这是一个具体的人,可以改变属性! person.name= "张宇杰"; } //定义了一个Person类 ,类下面有一个属性:name static class Person{ //一个类里面只可以有一个public class 但是可以有多个class String name;//null }
-