方法的结构
权限修饰符 [特征修饰符] 返回值类型 方法的名字([参数列表]) [抛出的异常] {方法体(如果方法是抽象的或者该类是接口则可省略方法体)
}
- []表示该元素可有可无
方法的设计一般有以下几种
- 无参数无返回值
- 无参数有返回值
- 有参数无返回值
- 有参数有返回值
//1.无参数无返回值
public void eat(){
System.out.println("这是吃饭的方法");
}
//2.无参数有返回值
//若方法设计了返回值类型,方法内必须通过return关键字返回一个值
public String getName(){
return "chenhui";
}
//3.有参数无返回值
//需要定义传入参数的类型和参数名字
public void drink(String something){
System.out.println("喝了一瓶"+something);
}
//还有一种参数类型叫可变参数,相当于一个数组,传入的值可以为0,也可以无数个,但是它必须放在参数列表的最后面
public void drink(String drink,String... something){
System.out.println("喝了"+drink);
for (String thing: something) {
System.out.println("还有"+thing);
}
}
//4.有参数有返回值
public String buy(int money){
if (money>5){
return "红牛";
}else {
return "矿泉水";
}
}
测试类
public class TestMain {
//main函数程序的入口
public static void main(String[] args) {
//创建一个Person类对象,
//1.由于这个Person类是我们自己创建的类型,属于引用类型,通过new关键字来创建
//2.一般来说需要找一个空间来接收,如果想直接创建完对象调用它的属性/方法后不需要它了,可以不需要接收
Person person = new Person();
//person是一个对象的引用,通过对象. 去调用方法做事情
//方法的调用有一个(),它是用来传递参数
//无参数无返回值方法调用
person.eat();
//调用有返回值的方法需要用一个对应的类型来接收(用其父类接收也可以,多态),当然也可以不接收(但是设计不合理)
//无参数有返回值方法调用
String name = person.getName();
System.out.println(name);
//有参数无返回值方法调用
person.drink("可乐");
person.drink("阿萨姆","雪碧","天地一号");
//有参数有返回值方法调用
String thing = person.buy(10);
System.out.println(thing);
}
}
注意方法之间不能来回调用,否则可能会出现问题–java.lang.StackOverflowError(栈内存溢出)
测试代码
public class Person {
public void test() {
play();
}
public void play(){
test();
}
}
public class TestMain {
public static void main(String[] args) {
Person person = new Person();
person.play();
}
}
测试结果