方法的调用
-
静态方法
package com.oop.demo01; public class Demo02 { //静态方法 static public static void main(String[] args) { //Student.say();静态调用 //实例化这个类 new,非静态调用 //对象类型 对象名 = 对象值 Student student = new Student(); student.say(); } } package com.oop.demo01; //学生类 public class Student { //非静态方法 public void say(){ System.out.println("学生说话了"); } }
package com.oop.demo01; //学生类 public class Student { public void a(){ b(); } public void b(){ } } 非静态可以直接调用
-
非静态方法
package com.oop.demo01; //学生类 public class Student { //和类一起加载的 public static void a(){ b();//报错,不能直接调用 } //类实例化之后才存在 public void b(){ } } package com.oop.demo01; //学生类 public class Student { public void a(){ b();//可以直接调用 } public static void b(){ } }
-
形参和实参
package com.oop.demo01; public class Demo03 { public static void main(String[] args) { Demo03 demo03 = new Demo03(); //实际参数和形式参数的类型要对应 int m = demo03.add(2,3); System.out.println(m); } public int add(int a, int b){ return a+b; } }
-
值传递和引用传递
package com.oop.demo01; //值传递 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; } } 1 1
package com.oop.demo01; //引用传递:对象,本质还是值传递 public class Demo05 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name);//null change(person); System.out.println(person.name);//faq } public static void change(Person person){ //person是一个对象,值相--->Person person = new Person();这是一个具体的人,可以改变属性 person.name = "faq"; } } //定义了一个Person类,有一个属性:name class Person{ String name;//null } null faq
-
this关键字