回顾方法和方法调用及加深
回顾方法及加深
-
方法的定义
- 修饰符
- 返回类型
//Demo01 类 public class Demo01 { //main 方法 public static void main(String[] args) { } /* 修饰符 返回值类型 方法名(...){ //方法名 return 返回值; */ //return 结束方法,返回一个结果! public static String sayHello(){ return "hello,world"; } public void hello(){ return; } public int max(int a,int b ){ return a>b ? a : b; //三元运算符! } //数组下标越界:Arrayindexoutofbounds public void readFile(String file) throws IOException{ } }
- break :跳出switch,结束循环和return的区别
- 方法名:注意规范就OK 见名知意
- 参数列表:(参数类型,参数名)...
- 异常抛出:疑问,后面讲解
-
方法的调用:递归
- 静态方法
- 非静态方法
public class Demo02 { //静态方法 static public static void main(String[] args) { //实例化这个类 new //对象类型 对象名 = 对象值; Student student = new Student(); student.say(); } // static和类一起加载的 public static void a(){ // b(); } //类实例化之后才存在 //非静态方法 public void b(){ } }
//学生类 public class Student { //非静态方法 public void say(){ System.out.println("学生说话了"); } }
- 形参和实参
public class Demo03 { public static void main(String[] args) { //实际参数和形式参数的类型要对应! // new Demo03().add(1,2); int add = Demo03.add(1, 2); System.out.println(add); } public static int add(int a,int b){ return a+b; } }
- 值传递和引用传递
//值传递 public class Demo04 { public static void main(String[] args) { int a = 1; System.out.println(a); //1 Demo04.change(a); System.out.println(a);//1 } //返回值为空 public static void change(int a){ a = 10; } }
//之前参数传入的是一个int属性,然而这是传的是person的类。改变类的属性的值当然可以接收得到 //引用传递:对象,本质还是值传递 //理解 对象,内存! 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); //lu } public static void change(Person person){ //person是一个对象:指向是 --->Person person = new Person();这是一个具体的人,可以改变属性。 person.name = "lu"; } } //定义了一个Person类,有一个属性:name class Person{ String name; }
- this关键字:后面提