《类和对象2ppt课件.pptx》由会员分享,可在线阅读,更多相关《类和对象2ppt课件.pptx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、类和对象2萍乡学院萍乡学院罗晓娟罗晓娟成员方法的调用用户可以调用自己定义的方法,也可以调用用户可以调用自己定义的方法,也可以调用JDKJDK或第三方提供的或第三方提供的类中的方法类中的方法。语法格式:语法格式: 调用者调用者. .方法名(实际参数表)方法名(实际参数表)调用者通常是对象名,有时候也可以是类名调用者通常是对象名,有时候也可以是类名参数的传递实实际际参参数数一般一般我们把调用方法语句中的参数称为我们把调用方法语句中的参数称为实际参数,可以实际参数,可以是常量,是常量,变量、对象或表达式变量、对象或表达式。形式参数形式参数方法方法声明中的参数称为声明中的参数称为形式参数。形式参数。实
2、际参数的类型与个数必须与形式参数完全一致。实际参数的类型与个数必须与形式参数完全一致。传值机制JavaJava中,方法调用时所有的参数都是中,方法调用时所有的参数都是“传值传值”。基本数据类型参数的传值基本数据类型参数的传值1515实参x形参a15151616向参数向参数传递的值不可以传递的值不可以高于高于该该参数参数的的级别,例如不可以向级别,例如不可以向int类类型的参数传递型的参数传递float类型的数类型的数据据,但但可以向可以向double类型的参数传类型的参数传递递float类型的数据。类型的数据。传值机制引用数据类型参数的传值引用数据类型参数的传值引用数据类型传递的是这个对象的引
3、用,如果在方法中对这个参引用数据类型传递的是这个对象的引用,如果在方法中对这个参数指向的对象修改,那么我们将看到实际参数也会改变。数指向的对象修改,那么我们将看到实际参数也会改变。0 xABC实体两个引用数据类型的变量如果具有相同的引用,就会指向同一个实体。引用型实参x引用型形参yx将引用0 xABC“传值”给参数y0 xABC引用数据类型传值应用举例public class Demo5_6 public static void main(String args) Battery bat1= new Battery(100); System.out.println(电池的储电量电池的储电量是是
4、:+bat1.electric); Radio radio = new Radio();(“收音机使用收音机使用电池电池); radio.openRadio(bat1); System.out.println(目前电池的储电量目前电池的储电量是是:+bat1.electric); public class Radio void openRadio(Battery battery) battery.electric = battery.electric - 10; public class Battery int electric; Battery(int electric) this.elec
5、tric = electric; 模拟收音机使用电池模拟收音机使用电池实参bat1形参batterelectric方法重载方法的重载是指在一个类中可以有多个方法具有相同的名字,方法的重载是指在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同。但这些方法的参数必须不同。两个方法的参数必须满足下列条件之一:两个方法的参数必须满足下列条件之一:1.1.参数的个数不同;参数的个数不同;2.2.参数个数相同,但参数列表中对应的某个参数的类型不同。参数个数相同,但参数列表中对应的某个参数的类型不同。方法的返回值类型和参数的名称不参与比较。方法的返回值类型和参数的名称不参与比较。static关
6、键字修饰修饰成员变量静态变量(或类变量)成员变量静态变量(或类变量)修饰成员方法静态方法(或类方法)修饰成员方法静态方法(或类方法)修饰代码块静态代码块修饰代码块静态代码块静态变量实例变量实例变量不同对象不同变量不同对象不同变量通过对象名和通过对象名和“.”操操作符访问作符访问类变量类变量所有对象共享的变量所有对象共享的变量通过类名或对象名和通过类名或对象名和“.”操作符访问操作符访问在在JavaJava类中,用类中,用staticstatic关键字修饰的成员变量,就是静态变量,该变量被所关键字修饰的成员变量,就是静态变量,该变量被所有实例共享,又称为类变量。有实例共享,又称为类变量。静态变量
7、0 x1012萍乡学院0 x0789对象stu1对象stu2public class Student static String schoolName;public class Demo5_8 public static void main(String args) Student stu1 = new Student () ; Student stu2 = new Student () ; stu1.schoolName=萍乡学院; System.out.println(我的学校是+stu2.schoolName); System.out.println(我们的学校是+Student.sch
8、oolName); 静态方法实例方法实例方法 对象调用实例方法对象调用实例方法 可以操作实例变量和类变量可以操作实例变量和类变量类方法类方法 类名调用类方法类名调用类方法 类方法类方法 不可以操作实例变量不可以操作实例变量设计原则:如果一个方法设计原则:如果一个方法 不操作任何实例变量,就可以考虑设计成类方法。不操作任何实例变量,就可以考虑设计成类方法。在在JavaJava类中,用类中,用staticstatic关键字修饰的成员方法,就是静态方法,又称为类方关键字修饰的成员方法,就是静态方法,又称为类方法。法。静态方法public class Person static void sayHel
9、lo() System.out.println(“Hello”); public class Demo5_9 public static void main(String args) Person p1=new Person(); Person.sayHello(); p1.sayHello(); JavaJava库中很多类的方法被定义为库中很多类的方法被定义为类方法,如常用的类方法,如常用的MathMath类。所以类。所以很多数学函数的使用可以直接使很多数学函数的使用可以直接使用用“MathMath. .方法名方法名()()”的格式,如的格式,如Math.sqrt(n)Math.sqrt(n
10、)等。等。静态代码块在在JavaJava类中,使用一对花括号围起来的若干行代码被称为一个代码块,用类中,使用一对花括号围起来的若干行代码被称为一个代码块,用staticstatic关键字修饰的代码块称为静态代码块,当类加载的时候,静态代码块关键字修饰的代码块称为静态代码块,当类加载的时候,静态代码块执行。执行。静态代码块public class User static (“User类中的静态代码块执行了”); public class Demo5_10 static (“测试类的静态代码块执行了”); public static void main(String args) User u1=n
11、ew User(); User u2=new User(); 虽然创建了两个虽然创建了两个UserUser对象,对象,但静态代码块只执行一次,但静态代码块只执行一次,因为静态代码块是在该类因为静态代码块是在该类被被JVMJVM载入内存时自动执载入内存时自动执行的,负责类的初始化。行的,负责类的初始化。定义包和引入类包是包是JavaJava语言有效管理类的一个机制。语言有效管理类的一个机制。语法格式:语法格式: package package 包名;包名;包名是通常包名是通常用用“. .”分隔分隔若干个标识符。若干个标识符。不同不同JavaJava源文件中可以出现名字相同的类,不过要隶属于不同源
12、文件中可以出现名字相同的类,不过要隶属于不同的包。的包。import语句使用不同包中的类需要使用使用不同包中的类需要使用importimport语句语句import java.util.Scanner;import java.util.Scanner;或者或者 import java.util.import java.util.* *; ; importimport语句必须写在语句必须写在packagepackage语句和类的定义之间语句和类的定义之间一个文件中可以有多个一个文件中可以有多个importimport语句语句java.langjava.lang包是核心类库,不需要使用包是核心类库
13、,不需要使用importimport语句语句Bankernumber:intmoney:intsetNumber():voidplay(Player):void1.假设庄家共有奖金100元,如果玩家猜对了给奖金10元;2.实例化一个庄家b1,和一个叫“Tom”的玩家,开始玩游戏,游戏结束后,显示庄家还剩下多少奖金。猜数游戏:庄家随机想好一个100以内的整数,让玩家猜 ,玩家告诉答案后,庄家会告诉玩家是猜大了还是小了,没有猜 对可以让玩家继续猜, 直到猜对为止。Playername:StringguessNumber:intsetName(String):voidgetGuessNumber():int