方法的定义
方法是类或对象的行为特征的抽象。Java中的方法不能独立存在,必须定义在类体中,这也是Java是纯面向对象语言的的重要原因。
语法格式:
权限修饰符 返回值类型 方法名(参数类型 参数名){ 方法体 (返回值) }
方法定义的先后顺序无所谓;
方法定义不能产生嵌套包含关系;
方法定义中的返回值与传递的参数类型均为Java中定义的数据类型;
在方法中可以进行返回数据的处理,格式:
return 返回数据类型
void 不返回数据类型
public class Person {
/**
* 权限修饰符 返回值类型 方法名(参数类型 参数名){ 方法体 (返回值) }
*/
public void eat(String food) {
System.out.println("吃" + food);
}
/**
* return 返回数据类型 方法定义中的返回值与传递的参数类型均为Java中定义的数据类型
*
* @param food
* @return
*/
public String eat2(String food) {
return "吃" + food;
}
/**
* 方法定义不能产生嵌套包含关系 即方法中不能定义方法 函数的定义都是相互平行、相互独立的
*/
// void defineOuter() {
// void defineInner();
// }
}
方法的调用
方法虽然定义了,但不会自己执行,如果想要执行,应进行方法调用。
方法调用格式:
本类中: 方法名(参数值列表);
外部类:调用类的对象 . 方法名(参数值列表);
public void invoke() {
System.out.println("方法被调用了");
}
public void test() {
invoke(); //本类中调用
}
public class Test {
public static void main(String[] args) {
Person person = new Person();
person.invoke(); //外部类调用
}
}
构造函数和普通方法的区别
名称 | 具体区别 |
---|---|
函数名 | 构造函数是没有返回值类型的;普通函数是有返回值类型的,即使函数没有返回值,返回类型也要写上void |
返回值类型 | 构造函数的函数名必须要与类名一致;普通函数的函数名只要符合标识符的命名规则即可 |
调用方式 | 构造函数是在创建对象的时候由jvm调用的;普通函数是由我们创建对象调用的 |
作用 | 构造函数的作用用于初始化一个对象;普通函数是用于描述一类事物的公共行为 |
方法重载
一个类中多个方法名称相同,参数列表不同,具体表现在参数的类型、顺序、个数不同;与返回值类型和修饰符无关。
/**
* 方法重载
*
* @param food
*/
public void eat() {// 没有参数
System.out.println("吃饭了");
}
public void eat(String food) {
System.out.println("吃" + food);
}
public void eat(double price) {// 参数类型不同
System.out.println("吃了" + price + "块钱的食物");
}
public void eat(String food, int num) {// 参数个数不同
System.out.println("吃" + num + "个" + food);
}
public void eat(int num, String food) {// 参数顺序不同
System.out.println("吃" + num + "个" + food);
}
// private void eat() {// 与修饰符无关
//
// }
//
// public String eat() {// 与返回类型无关
// return "eat";
// }
重载方法是早期绑定完成,当调用一个重载的方法,在编译时根据参数列表就可以确定方法。
早期绑定就是被调用的目标如果在编译期可知,且运行期保持不变,即可将这个方法与所属的类型进行绑定。也就是说在编译时就知道了方法是哪个类中的。