4 - 对象的行为

上传人:豆浆 文档编号:47262266 上传时间:2018-07-01 格式:PPT 页数:32 大小:1.60MB
返回 下载 相关 举报
4 - 对象的行为_第1页
第1页 / 共32页
4 - 对象的行为_第2页
第2页 / 共32页
4 - 对象的行为_第3页
第3页 / 共32页
4 - 对象的行为_第4页
第4页 / 共32页
4 - 对象的行为_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《4 - 对象的行为》由会员分享,可在线阅读,更多相关《4 - 对象的行为(32页珍藏版)》请在金锄头文库上搜索。

1、4. 对象的行为RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line对象的状态和行为Song title artist setTitle() setArtist() play()实例变量(状态)方法 (行为)同一类型的每个对象可能有不同的行为吗?RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line对象的状态和行为Politik ColdplayMy Way SinatraSing TravisDarkstar Grateful DeadMy Way Sex PistolsSongt2So

2、ngs3 t2.play();s3.play();void play() soundPlayer.playSound(title); Song t2 = new Song(); t2.setArtist(“Travis”); t2.setTitle(“Sing”); Song s3 = new Song(); s3.setArtist(“Sex Pistols”); s3.setTitle(“My Way”);RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line对象的状态和行为Bark Different.Dogsize namebark(

3、)class Dog int size;String name;void bark() if (size 60) System.out.println(“Woof! Woof!“); else if (size 14) System.out.println(“Ruff! Ruff!“); else System.out.println(“Yip! Yip!“); class DogTestDrive public static void main(String args) Dog one = new Dog();one.size = 70;Dog two = new Dog();two.siz

4、e = 8;Dog three = new Dog();three.size = 35;one.bark();two.bark();three.bark(); RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line函数调用 方法会运用形参,调用的一方传入实参 实参是传给方法的值。当传入方法后就变成了 形参 参数和局部变量是一样的。有类型和名称,可 以在方法内部使用 如果某个方法需要参数,调用时必须提供参数RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line参数void bark(int n

5、umOfBarks) while (numOfBarks 0) System.out.println(“ruff”);numOfBarks = numOfBarks 1; Dog d = new Dog(); d.bark(3);1. 调用 Dog 的方法 bark() 2. int 类型的值传递 给bark() 3. 这个值传递给参 数numOfBarks4. bark() 方法内把 numOfBarks当做变量 使用RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line返回值 方法可以有返回值,也可 以无返回值 返回类型必须和定义的匹 配

6、 定义为有返回值,就必须 有 return 返回语句void go() int giveSecret() return 42; RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line返回值int theSecret = life.giveSecret();int giveSecret() return 42; RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line编译错误 (未定义返回值)RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 lin

7、e多个参数void go() TestStuff t = new TestStuff();t.takeTwo(12, 34); void takeTwo(int x, int y) int z = x + y;System.out.println(“Total is ” + z); void go() int foo = 7;int bar = 3;t.takeTwo(foo, bar); 常数变量RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line按值传参 Java 是通过值传 递参数的,也就 是说通过拷贝传 递.RUNNING HEAD

8、ER, 14 PT., ALL CAPS, Line Spacing=1 line按值传参int x = 7;intx00000111void go(int z) intzintx00000111foo.go(x);intz00000111void go(int z) intx00000111intz00000000void go(int z) z = 0; x1. 定义变量2. 定义方法3. 调用方法 4. 方法中修改 z 不影 响原来的 xRUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line问答 方法可以声明返回多个值吗? 一定要返回所

9、声明类型的值吗? 可以不返回任何值吗?RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line要点 类定义对象状态和行为 对象状态是实例变量 对象行为是方法 方法可以根据实例变量来展现不同的行为 方法可以使用参数,这代表你可以传入一个或 多个值给方法 传给方法的参数必须符合声明时的数量,顺序 和类型RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line要点 传入与传出方法的值类型可以隐式转换 传给方法的参数可以是和声明类型匹配的常量 和变量 方法必须声明返回类型。使用 void 表示不返 回任

10、何东西 如果方法声明了非 void 返回类型,那就必须 要返回与声明类型相同的值RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 linegetter和setter方法 获取值(getter) getter的目的为返回实 例变量的值 设置值(setter) setter的目的为使用一 个参数来设定实例变量 的值RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 lineElectricGuitar 类class ElectricGuitar String brand;int numOfPickups;

11、boolean rockStarUsesIt;String getBrand() return brand;void setBrand(String aBrand) brand = aBrand;int getNumOfPickups() return numOfPickups;void setNumOfPickups(int num) numOfPickups = num;boolean getRockStarUsesIt() return rockStarUsesIt;void setRockStarUsesIt(boolean yesOrNo) rockStarUsesIt = yseO

12、rNo; RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line封装(encapsulation) 数据安全! 在缺乏有效的封装的情况下,任何类中都可以随意修改其它 的类的实例变量的值, theCat.height = 27; theCat.height = -1;RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line通过方法隐藏数据 通过方法设置实例变量的值,确保数据符合规范.public void setHeight(int ht) if (height 9) height = ht;检

13、查参数是否符合 要求.theCat.height = -1;RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line数据隐藏 使用公有和私有两个存取修饰符保护数据 private publicRUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 lineGoodDog 类GoodDogsizegetSize() setSize() Bark()class GoodDog private int size;public int getSize() return size;public void setS

14、ize(int s) size = s;void bark() RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 lineGoodDog 类RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line数组中对象的行为DogpetsDog 数组对象(Dog)1. 声明Dog数组 Dog pets; pets = new Dog7;RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line数组中对象的行为DogpetsDog 数组对象(Dog)Dog 对象D

15、og 对象2. 创建两个 Dog 对象并赋 值为数组前两个元素pets0 = new Dog(); pets1 = new Dog();3. 调用 Dog 对象的方法pets0.setSize(30); int x = pets0.getSize(); pets1.setSize(8);RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 line声明与实例化变量 定义类型和名称 int size; String name; 定义并初始化 int size = 420; String name = “Donny”;RUNNING HEADER, 14 PT., ALL CAPS, Line Spacing=1 linePoorDog 类 class PoorDog private int size;private String name;public int getSize() return size;public String getName() return name; public class PoorDogTestDrive public static void main(String args) PoorDog one = new PoorDog();System.out.println(“Dog size i

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号