Java之类和对象

上传人:沈*** 文档编号:244426402 上传时间:2024-10-04 格式:PPT 页数:31 大小:309.50KB
返回 下载 相关 举报
Java之类和对象_第1页
第1页 / 共31页
Java之类和对象_第2页
第2页 / 共31页
Java之类和对象_第3页
第3页 / 共31页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,第一级,第二级,*,第三章,类和对象,回顾,Java,具有8种基本数据类型:,int、boolean、char、short、long、float,及,double,Java,中的运算符可划分为四大子集:算术运算符、位运算符、关系运算符、逻辑运算符,Java,支持下列控制结构:选择、循环、跳转,数组可用来将同一类型的数据存储在连续的内存位置,2,目标,掌握如何创建类和构造对象,掌握方法的重载和覆盖,了解类的继承,了解包概念,3,类和对象2-1,对象表示现实世界中某个具体的事物。,抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程。,对象具有两方面的含义:,在现实世界中:,是客观世界中的一个实体,在计算机世界中:,是一个可标识的存储区域,4,类和对象 2-2,类是具有共同属性和行为的对象的抽象。,类可以定义为数据和方法的集合,。,类也称为模板,因为它们提供了对象的基本框架。,类,对象,抽象,实例化,属性或状态,操作或行为,数据或变量,方法,封装的实体=数据+方法,5,创建类,class name,type variable1;,type variableN;,type methodname1(parameter-list),/,方法体,type methodnameN(parameter-list),/,方法体,在类中,属性是通过成员变量体现的,而操作是用成员函数(又称为方法)实现的。,Java,中定义类的通用格式:,成员变量(对象属性),成员方法,(对象行为或操作),6,定义方法,定义方法的一般格式:,access type methodname1(parameter-list),/,方法体,发往某个对象的消息对应于一个方法调用。作为对消息的响应,对象将执行一个类似于过程体的方法。方法是包含在类中的函数。,方法名称,返回类型,修饰符,可选,参数列表,可选,举例:,public void setdate(int day,int month,int year),day=23;month=7;year=2003;,7,对象作为参数,class Test,int a,b;,Test(int i,int j),a=i;,b=j;,/,可以在函数中改变,对象状态,void change(,Test obj,),obj.a=50;,obj.b=40;,当对象作为函数参数时,在函数中只能改变该对象的状态,但不能改变该对象的引用,void swapobj(,Day x,Day y,),Day temp=y;,y=x;,x=temp;,引用本身,按值传递,Day,2002,5,30,Day,2003,7,23,obj1,obj2,x,y,调用,swapobj(obj1,obj2),改变对象状态,x,y,8,this,引用,public class PassTest,int x;,PassTest(int x),this.x=x;,public void passingValue(),System.out.println(“x,等于,+,x);,public static void main(String args),PassTest test=new PassTest(10);,test.passingValue();,关键字,this,与对象关联,它用于指示当前对象,指明此对象的变量,x,应赋值为通过构造函数传递的自变量,x,的值。,9,简单访问控制-,private,和,public,public,声明的数据成员和成员函数可从类外部的任何地方访问。,而,private,数据将被隐藏,在类外不可见,这就实现了数据封装的思想。,要从类外操纵,private,成员,只能通过类的,public,或,protected,成员来实现。,10,方法重载(,overloading),方法重载是,Java,实现面向对象的多态性机制的一种方式。,同一个类中多个方法有相同的名字,不同的参数列表,这种情况称为方法重载,。,返回类型不同并不足以构成方法重载。,当重载方法被调用时,编译器根据参数的类型和数量来确定实际调用哪个重载方法的版本。,11,方法重载示例,class Calculation,public void add(int a,int b),int c=a+b;,System.out.println(,两个整数相加得,+,c);,public void add(float a,float b),float c=a+b;,System.out.println(,两个浮点数相加得,+,c);,public void add(String a,String b),String c=a+b;,System.out.println(,两个字符串相加得,+,c);,class CalculationDemo,public static void main(String args),Calculation c=new Calculation();,c.add(10,20);,c.add(40.0F,35.65F);,c.add(,早上,好,);,编译器决定调用版本,12,构造函数,构造函数名称与类名称相同,构造函数没有返回类型,其任务是在创建对象时初始化其内部状态,class Fruit,boolean seedLess;,boolean seasonal;,float price;,Fruit(boolean seed,boolean season,float p),seedLess=seed;,seasonal=season;,price =p;,13,创建对象,使用下列语法可创建对象:,new,构造函数,关键字,new,通常称为创建运算符,用于分配对象内存,并将该内存初始化为缺省值。,一旦,new,完成分配和初始化内存,它就将调用构造函数来执行对象初始化。,当创建一个类时,只是创建了一种新的数据类型。对象是类的一个实例。,class FruitDemo,public static void main(String args),Fruit f=new Fruit(true,false,50.0F);,创建对象,14,缺省初始值,Java,保证了在任何代码使用该内存之前,已至少将内存初始化为可预知的缺省值,类型,缺省值,类型,缺省值,byte,(,byte)0,char,u0000,short,(,short)0,float,0.0,F,int,0,double,0.0,D,long,0,L,对象引用,null,boolean,false,15,重载构造函数,Java,为每一个类自动提供缺省构造函数,缺省构造函数将成员变量的值初始化为缺省值,一旦创建了自己的构造函数,缺省的构造函数将不复存在。,重载构造函数提供了一组创建对象的方式,可以根据需要决定是否带初始参数。,public class constructOverload,int x;,constructOverload(),x=0;,System.out.println(,不带参数的构造函数,);,constructOverload(int x),this.x=x;,System.out.println(,带一个参数的构造函数);,16,继承,被继承的类称为父类,继承父类的类称为子类,执行继承时,子类将获得父类的属性,并具有自身特有的属性。,继承是面向对象编程技术的一块基石,它允许创建分等级层次的类。运用继承,可以创建一个通用类定义一系列一般特性。该类可以被更具体的类继承,Emoloyee,类:,name,sex,Worker,类:,category,dressAllowance,Officer,类:,empClass,vehicle,职员类,具,有姓名和性,别两个属性,工人类,继承了父,类的姓名和性别属,性外还包含类别和,是否有服装津贴属性,主任类,还包含,级别和是否配备,交通工具属性,17,extends,关键字,extends,关键字用于继承类。,声明一个继承父类的类的通常形式如下:,class subclass-name,extends,superclass-name,/,类体,没有,extends,,默认父类为,Object,只能有一个父类,即单继承,子类继承父类的全部成员,注意,18,super,关键字,super,关键字用来解决如何直接访问或初始化从父类继承来的属性。,super,有两种通用形式:调用父类的构造函数、用来访问被子类的成员覆盖的父类成员。,它用在对象的构造函数中,将构造细节通过继承链往上传递。,super(),必须是在子类构造函数中的第一个执行语句。,19,继承示例,class Employee,String name;/,姓名,char sex;/,性别,Employee(String n,char s),name=n;,sex=s;,public String getName()return name;,public char getSex()return sex;,class Worker extends Employee,char category;/,类别,boolean dressAllowance;/,是否提供服装津贴,Worker(String n,char s,char c,boolean d),super(n,s);,category=c;dressAllowance=d;,public char getCategory()return category;,public boolean getAll()return dressAllowance;,class InheDemo,public static void main(String args),Worker w=new Worker(M.John,M,B,true);,System.out.println(,工人,信息,);,System.out.println(,姓名,:,+,w.getName();,System.out.println(,性别,:,+,w.getSex();,System.out.println(,类别,:,+,w.getCategory();,if(w.getAll(),System.out.println(,提供,服装津贴,);,else,System.out.println(“,未提供,服装津贴,”);,20,instanceof,class Student,class Graduate extends Student,class UndergraduateStudent extends Student,public class st,public static void main(String args),UndergraduateStudent s1=new UndergraduateStudent();,Graduate s2=new Graduate();,Student x;,x=s1;,if(,x instanceof UndergraduateStudent,),System.out.println(“x,是,UndergraduateStudent,类的实例,。,”);,else,System.out.println(“x,是,Graduate,类的实例,。,”);,instanceof,测试第一个参数的运行时类型是否为与第二个参数兼容的赋值。,x,在运行时指向,s1,,所以,if,语句条件返回,true,21,类型转换,执行自动类型转换需要两个条件:,接受转换的两种类型是兼容的,目的类型数的范围比源类型的大,强制类型转换语句的通用格式如下:,(目标类型),value,UndergraduateStudent s1=new UndergraduateStudent();,Graduate s2=new Graduate()
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!