类是由一组具有相同属性和共同行为的实体抽象而来的。对象执行的操作是通过编写类的方法来实现的。
1) 类的方法
在前面我们学到了,世界是由对象组成的,对象的行为,即对象能做什么,在程序中叫方法。我们还知道:在类里面只有两样:属性和方法。上一次课学习了类的属性,今天来学习类的方法。
先举一个例子:前几天天气变化无常,搞得我有点感冒,我就去看医生,我不会去看警察,为什么呢,因为医生会看病,他有看病的功能,我到了医院,就得去找医生,当然就是找一个具体的医生了,他就是一个对象,医生作为一个对象,他有姓名,性别,科室等属性,他还有看病的功能,能给我看病,医生所具有的这种能看病的功能,也就是他能做的事情,我们在程序里就叫做方法。
再举一个例子:我是一个老师,一个具体的对象。我有姓名、性别、年龄,这是我具有的属性,我还有讲课的功能,这就是我能做的事情,也就是我的方法,一个老师所具有的方法。
对象具有的功能或行为,在程序中叫方法。
而在程序中就是用一段代码来描述这些功能和行为,由此我们知道:
a) 定义:具有一定功能的一段代码
b) 作用:用来完成相应的功能
c) 代码示例:编写老师类,写一个方法,实现讲课功能(对方法有感性认识)
1. 类中只有属性和方法,方法中的代码用来描述方法的实现过程
d) 讲解电动狮子:
1. 特点:只要装上电池,按动按钮,电动狮子就会跑动。
2. 分析:
a) 在玩电动玩具时,我们只要按动按钮,电动狮子就能奔跑,我们不用知道它为什么能跑。我们只要会按按钮就行了。
b) 电动狮子能叫能跑的内部实现就相当于类中的方法。
e) 特点:
1. 类的方法定义类的某种行为(或功能),被封装在类中,实施细节被隐藏。
2) 如何定义类的方法
a) 通过以上对方法的了解,我们来看一下方法中包括了哪些东西,我们知道:类有类名,变量有变量名,所以方法也有方法名,方法要执行的特定的操作,我们用一段代码来描述这个操作,所以方法就要有一段代码,我们把这段代码写在方法体中,因此方法有方法体,方法还有第三个部分,那就是返回值类型,很快我们就会具体学习一下什么是方法的返回值类型,现在先把返回值类型这个概念记住。
b) 类的方法包括3个部分
1. 方法的名称
2. 方法返回值的类型
3. 方法的主体
c) 语法:
public 返回值类型 方法名() {
//这里编写方法的主体
}
1. 步骤1:定义方法名和返回值类型
2. 步骤2:在{}中编写方法体,也就是方法的要执行的操作
在步骤1中,我们要给方法起名字,要遵守一定的规范
d) 方法的命名规范
1. 如何给方法起名字?
a) 必须以字母、‘_’或‘$’开头
b) 可以包括数字,但不能以它开头
2. 遵循的命名规范
a) 通常方法名是一个动词,如果有两个以上单词组成,第一个单词的首字母小写,其后单词首字母大写
e) 方法的返回值
1. 举例:我去看医生的时候,医生问了我N多问题,看了又看,然后一语不发,就把我给打发走了。大家说医生是不是这样看病的呢?他是不是应该给我开点药啊。我使用了医生的看病的功能,也就是他的看病的方法,我希望他能给我开个药方,让我去拿药治病,也就是说:我想让医生的看病方法返回个东西给我,那就是药方。这就是方法的返回值。
2. 再举一个例子:妈妈让我去打酱油,我就出去买,我是不是要把酱油交给妈妈啊。我能完成买酱油这样一个功能,也就是说我有买酱油的方法,妈妈就使用了这个方法,那么妈妈是不是希望我在执行完买酱油这个方法后,把酱油交给她。这也是方法的返回值,返回的值和期望的值应该是一样的。
3. 不要返回值的例子:要是妈妈给我钱,让我去买糖吃,那么我还要不要把糖带回去给妈妈?当然不用了。我买了糖后,自己就处理了(吃掉),妈妈并不希望得到任何东西,也就是说我不用返回给妈妈任何东西,这时,就说:我买糖这个功能,也就买糖的方法不需要返回值。
4. 在现实生活中有这两种情况,那么在程序中也有
5. 在类的方法中返回值也分这两种情况
a) 如果方法没有返回值,返回类型为void
1. 语法:
public void 方法名(){
方法执行的操作
}
b) 如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型
1. 语法:
public 返回值类型 方法名(){
return 返回值
}
2. 注意:在方法声明中返回值类型(方法名前面的类型)和方法体中返回值的类型(return语句后面的值)一定要相同。否则就会出错。
public class Teacher{
String name = "张三";
public void getName(){
return name;
}
……
}
f) 一个方法里不能再定义方法
1. 方法不能嵌套
g) 常见错误:
public class School{
// ……
public static void main(String[ ] args){
// ……
return "襄樊学院! ";
}
}
public class Student{
public double getInfo(){
double weight = 95.5;
double height = 1.69;
return weight, height;
}
}
3) 方法调用
a) 妈妈让我打酱油,并不需要知道我是如何打酱油的,只要我能把酱油打回来交给她就行了;妈妈给让我自己买糖吃,只要我自己去买来吃就行了,妈妈不需要知道我是怎么买的糖,也不需要知道我是怎么吃的。
b) 方法的特点:
1. 当使用方法时,并不需要知道方法体中是如何实现的,只要知道哪个类拥有想要使用的方法即可
2. 方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果
c) 方法调用:在程序中使用方法的名称,就可以执行方法中包含的语句
对象名.方法名();
d) JAVA中类是程序的基本单元
e) 每个对象需要完成特定的应用程序功能。当需要某一对象执行一项特定操作时,能过调用该对象的方法来实现
f) 示例:小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作
1. 分析:
a) 需要两个类:一个电动狮子类,一个测试类
b) 电动狮子类有两个方法:一个是狮子叫,一个是狮子跑
c) 测试类用来检测跑和叫的功能是否正常。
2. 代码:
a) 电动狮子类:
public class AutoLion {
String color = "黄色";
public void run() { // 方法1:跑
System.out.println("正在以0.1米/秒的速度向前奔跑。");
}
public String bark() { // 方法2:叫
String sound = "吼";
return sound;
}
public String getColor() { // 方法3:获得颜色属性
return color;
}
public String showLion() { // 方法4:描述狮子特性
return "这是一个" + getColor() + "的玩具狮子!";
}
}
b) 测试类
public class TestLion {
public static void main(String[] args) {
AutoLion lion = new AutoLion();
System.out.println(lion.showLion());
lion.run();
System.out.println(lion.bark());
}
}
3. 分析:
a) 可以在类的方法中调用该类另一个方法
b) 可以在一个类的方法中调用另一个类的方法
c) 调用的方式不同:
1) 类中可以直接调用。
2) 在类的外面,要用类的对象来调用。
|
|