第四章面向对象特性 √类和封装 √继承和多态
第四章 面向对象特性 ✓类和封装 ✓继承和多态
4.1类和封装 基本结构 Methods 封装 instance variables 构造器和初始化
4.1 类和封装 ▪ 基本结构 ▪ Methods ▪ 封装 ▪ instance variables ▪ 构造器和初始化
Java类的基本结构 class class name constructor1∥构造器 constructor method1∥方法 method2 instance variable1∥实例变量 field2
Java类的基本结构 ▪ class class_name{ constructor1//构造器 constructor2 … method1//方法 method2 … instance variable1//实例变量 field2 …. }
Method behavior and state 一个类的每个对象可以拥有不同的实例变量,而它们的 方法行为呢? 应该说,同一类的每个实例具有同样的方法,但是这些 方法也可以具有不同的行为,取决于实例变量
Method behavior and state 一个类的每个对象可以拥有不同的实例变量,而它们的 方法行为呢? 应该说,同一类的每个实例具有同样的方法,但是这些 方法也可以具有不同的行为,取决于实例变量
Method behavior and state on g void playo i sound Player play Sound(title) title State (knows 所有实例的pay方法都是一样的 play0方法的行为将因ttle的不同而不 set Title Behavior setArtisto(does Song"Travel Song Sing layo Song t1=new Songo Song t2=new Songo t1 setTitle(“ Travel) t2 setTitle(“Sing); t1 play( t2. play 0:
Method Song title artist setTitle() setArtist() play() State (knows) Behavior (does) void play() { soundPlayer.playSound(title); } 所有实例的play方法都是一样的; play()方法的行为将因title的不同而不 同。 Song t1=new Song(); t1.setTitle(“Travel”); t1.play(); Song t2=new Song(); t2.setTitle(“Sing”); t2.play(); Song “Travel” Song “Sing” behavior and state
Method behavior and stlasize不同,bak0的是不 void barko(样的。 Dog f(size >60) sIze System. out. println("Woof!) name else if(size >14) System. out. println( Ruuf!) barko else System. out. println( Yip!")
Method Dog size name bark() void bark() { if(size >60) System.out.println(“Woof!”); else if(size >14) System.out.println(“Ruuf!”); else System.out.println(“Yip!”); } size不同,bark()的是不一 样的。 behavior and state
Method pass something to method Dog d=new DogS d bark (3); d bark(4) arguments 值3被发送出去 void bark(int numofBarks) parameter while(numOfBarks>0) 在方法内充当 System. out. printIn(rufP) 局部变量 numofBarks-
Method pass something to method Dog d=new Dog(); d.bark(3); d.bark(4); void bark(int numOfBarks){ while(numOfBarks>0){ System.out.println(“ruff”); numOfBarks--; } } arguments parameter 在方法内充当 局部变量 值3被发送出去
Method get things back from a method void goo{每个方法必须声明返回类型,它也叫该方法的类型 /return nothing int t=life. give SecretO 类型必 须匹配 值42被发送出去 int give SecretO i return 42 这里必须是
Method get things back from a method void go(){ //return nothing } int t=life. giveSecret(); int giveSecret() { return 42; } 类型必 须匹配 这里必须是 一个int 值42被发送出去 每个方法必须声明返回类型,它也叫该方法的类型
Method Java is pass-by-value 1 int xe7 X void go(int z(] 2 foo. go(x) 传递的是变量的值,而不 是变量的地址 X 3如果z改变,x不会受影响 X void go(inti
Method Java is pass-by-value int x=7; x void go(int z) { } z x z x z 2 foo.go(x); 传递的是变量的值,而不 是变量的地址 3 如果z改变,x不会受影响 void go(int z) { z=0; } 1
Method Getter and setter 用来读取和设置属性 Employee class Employee i salary double salary name String name; setNameO setsalary String getNameoi getNameo return name getsalaryo void setName(String s name=s
Method Getter and Setter Employee salary name setName() 用来读取和设置属性 setSalary() getName() getSalary() class Employee { double salary; String name; String getName() { return name; } void setName(String s){ name=s; } }