实例方法(也叫成员方法,用于描述对象的固有行为):默认将当前实例对象传递为第一个参数
类方法(类方法在定义时,方法在上面必须添加@classmethod):默认将当前类传递为第一个参数
实例方法调用格式:
对象名.方法名()
(实例方法必须要new一个对象,要么就是同一个类下this.方法名())
类方法调用格式:
类名.方法名(参数) 推荐使用方法
对象名.方法名(实参)不推荐使用
注意:
(1)类方法定义在类中,不属于某个对象的具体行为,可以被所有对象共同使用的行为
(2)类方法中不允许使用实例变量和实例方法,实例方法中允许使用类变量和类方法,推荐使用类名调用
(3)实例方法中允许使用类变量和类方法
实例方法调用
创建对象
package com.powernode.javase.oop03_2;
public class Customer {
private String name;//实例变量
private String birth;
private boolean gender;
/*
* 实例方法(没有static)
* 这种方法必须要对象才可以触发
* */
//方法1,购物
public void shopping(){
//name的this可以省略
System.out.println(name + "在购物");
//方法二调用
this.pay();
//为什么要是this.pay也可以pay(因为pay也是实列方法)
}
//方法2.结账
public void pay(){
System.out.println(name + "在付款");
}
/*
* ---------------------------------------------------------------------------
* */
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
}
注:
为什么是this.pay / pay:
1.没static,所以是实例方法,实例方法调用就必须new一个对象,用(对象.方法名)访问,或者在同一个类下可以用this.方法名访问。
2.没有同名局部变量,所以不会搞混,所以可以省略。
调用对象
package com.powernode.javase.oop03_2;
public class Customer_test {
public static void main(String[] args) {
Customer c = new Customer();
c.setName("小白");
c.setBirth("2001-03-03");
c.setGender(false);
c.shopping();
}
}