在封装一个类时,不仅要给出类的属性,还要给出类的方法。本节主要介绍如何封装类的方法。
1、方法的定义
类方法是类行为的抽象,如同类属性是类特征的抽象。类方法是由多条语句组成的语句块,并完成类的某一项功能,语句块用{}括起来。
例1:下面编写一个人输出自己姓名和年龄的方法示例。
代码如下:
public class Person {
//声明名称属性,并被初始化为"张三"
private String name = "张三";
//声明年龄属性,并被初始化为22
private int age = 22;
//定义一个方法,public是修饰符,void表示没有返回值
public void tell() {
System.out.println("姓名:" + name + ",年龄:" + age) ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}代码中的tell()方法输出人的名称和年龄属性。
从上面的代码可以看出,方法的定义需要修饰符、方法返回值类型、方法名称、参数、方法体组成。
方法的修饰符可以省略,默认的是default修饰符,该修饰符的作用是只要其他类和该类在一个包里,就可以用它的实例调用该方法。
方法返回值类型是方法返回值的数据类型,例如例子中的getAge()方法返回数据类型为int的年龄属性。tell()方法没有返回值,因此用void表示无返回值。
方法名称是方法的名字,类实例对象调用该方法时,需要使用该名称。
例如:
Person p = new Person();
p.tell();
方法名称要遵守命名规范,方法名称首单词全部小写,如果一个方法由多个单词构成,那么从第二个单词开始首字母大写,不要使用连接符。
参数就像是占位符。当方法被调用时,调用方向参数传递一个值,这个值被称为实际参数。参数列表包括方法参数的类型、顺序、数量。参数是可选的,也就是说,方法可能不包含参数
根据方法是否包含参数,方法可以分为有参方法和无参方法。
无参方法定义的语法为:
public 返回值类型 方法名() {}
例如例子中的tell()方法。
有参方法定义的语法为:
public 返回值类型 方法名(参数列表) {}
例如例子中的setName(String name)方法和setAge(int age)方法。
2、方法的分类
在实际编程中,不但自己定义类方法,也大量使用Java类库或第三方类库提供的类方法。
自定义的类方法是在类中为了解决某个问题而编写的一段功能代码片段,例如上面例子的tell()以及类属性的get和set方法都属于自定义方法。
Java类库或第三方类库提供的类方法,可以帮助我们完成很多程序功能,提高开发速度和质量,例如上面例子的System.out.println(“”)方法就为我们提供了输出字符串到控制台的功能。
如何使用Java类库提供的方法呢,这里以前面经常用到的Scanner类为例,说明使用Scanner类next方法的过程。
通过查阅JDK API,使用import语句将类引入到程序中,声明此类的变量,再通过new关键字初始化,最后通过对象名.方法名.(参数)的形式来使用。
下面是JDK API的官方网址:
Java SE7 API地址为:https://docs.oracle.com/javase/7/docs/api/。
■ 知识点拨
定义方法时,方法名后面括号内的参数,称为形式参数(简称行参),参数之间用逗号隔开。方法的参数是方法执行时用来接收数据的,调用方法的语句负责传入数据。
■ 思考与练习
参照例子内容,编写一个水果类,输出水果的名称、味道、形状。