4_1方法、类、包(精品)

上传人:仙*** 文档编号:253090303 上传时间:2024-11-28 格式:PPT 页数:46 大小:160KB
返回 下载 相关 举报
4_1方法、类、包(精品)_第1页
第1页 / 共46页
4_1方法、类、包(精品)_第2页
第2页 / 共46页
4_1方法、类、包(精品)_第3页
第3页 / 共46页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,4,章 类、包和接口,Part 1,类、域、方法 和 包,1,本节内容,类和对象,:,定义格式、构造方法,方法重载,this,关键字,对象的创建和使用,方法,:,定义格式、可见范围、参数传递,包,:,概念,包的构建:,package,语句,包的引用:,import,语句,=,与,equals(),的用法,封装类,2,3,JAVA,中,class,的定义格式,定义格式如下:,修饰符,class,类名,extends,父类名,implements,接口名,1,接口名,2,成员变量声明;,构造方法;,方法声明;,4,class,定义几点说明,修饰符:规定类的特征,访问控制符:只有,public,、默认,非访问控制符:只有,abstract,、,final,类名:大写字母开头,extends:,只能接一个父类,implements,:可实现多个接口,类体:,成员变量,(也称域),+,构造方法,+,方法,5,Java,的方法,6,方法的定义格式,定义格式如下:,修饰符,返回值类型 方法名(,形式参数声明,),throws,例外名,1,,例外名,2,,,局部变量声明;,执行语句组;,例如,(,source code,),public static Channel,inheritedChannel,()throws,IOException,return,SelectorProvider.provider().inheritedChannel,();,7,方法的定义几点说明,修饰符:规定方法的特征,访问控制符:,public,、,private,等,非访问控制符:,final,、,static,等,返回值:,基本型、引用型,如果有返回值,方法中必须有,return,语句,如果没有,返回类型为,void,方法名:小写字母开头,形参:声明类型,+,变量名,throws:,抛出异常,表示运行该方法的语句时可能会抛出的异常类型,方法体:,局部变量:,必须进行初始化,方法体中可以访问所有的成员变量,可以调用类中定义的方法。,方法调用:,A.method(b,);,a.method(b,);,method(b,);,this.method(b,);,8,方法的使用(,1,),方法中变量的可,见范围,(复习),class Test,static,int,myArg,=1;,public static void,main(String,args,),int,myArg,;,System.out.println(myArg,);,编译运行的结果是?,9,方法的使用(,2,),Java,的值传递(复习),Ob.java,Java,定义方法的调用方式:,程序调用方法、系统调用方法,10,构造方法(,constructor),问题的提出,Java,试图在每个对象一诞生时,就给它一确定的状态,但有时这种系统的缺省初值不合适;所以在创建一个新对象时,需用构造方法完成,合法的初始化,,使类内成员的初始化工作不依赖于外界完成。,11,构造方法说明,构造方法的,方法名与类名完全相同,构造方法,没有返回类型,构造方法,不能被,static,、,final,、,synchronized,、,abstract,、,native,修饰,构造方法的主要作用是完成对类对象的初始化工作,可以初始化成员变量,也可以调用方法。,构造方法用,new,来调用:在创建一个类的新对象的同时,系统会自动调用该类的构造方法为新对象初始化,12,Java,中的对象,对象的声明,:,引用型的变量被声明后,没有初始化,就不指向任何对象,Point p1,p2;,对象的实例化:,p1=new Point();,可写在同一条命令中,Point p4=new Point();,Java,中用,new,关键字创建对象,它有,三个作用,:,为对象实例分配空间,将对象的成员变量初始化,使其为变量的默认值。,调用构造方法,显式初始化对象的成员变量。,返回对象实例的引用,13,默认的构造方法,Java,语言中,每个类都至少有一个构造方法;,如果类的定义者,没有显式的定义任何构造方法,系统将自动提供一个默认的构造方法:,默认构造方法没有参数,默认构造方法没有方法体,Java,类中,一旦类的定义者显式定义了一个或多个构造方法,系统将不再提供默认的构造方法;,14,默认的构造方法,类的定义:,public class Person,private,int,age;,public void,setAge(int,w)age=w;,相当于,:,public class Person,private,int,age,public Person(),public void,setAge(int,w)age=w;,应用举例:,public class Test,public static void main(String,args,),Person d=new Person();,d.setAge(120);,15,默认的构造方法,class Bush,Bush(int,i),Bush(double,d),new Bush()/error,一旦定义了一个构造方法,缺省构造方法失效!,16,方法的重载,方法的重载:多个方法享有,相同的名字,,但是这些方法的参数列表必须不同,即:,或参数,个数,不同,参数,类型,不同,参数,类型的顺序,不同,此外:,方法的返回类型可以不相同,方法的修饰符可以不相同,。,17,方法的重载,举例:,要打印不同类型的数据,,int,float,String,不需要定义不同名的方法:,printInt(int,);,printFloat(float,);,printString(String,),利用方法重载,只需要定义一个方法名:,println,(),,接收不同的参数:,println(int,);,println(float,);,println(String,);,18,方法的重载,void,sayHello,(),System.out.println(“Hello!My,name is”+name);,void,sayHello(Person,another),System.out.println(“Hello,”+another.name+”!My,name is”+name);,19,方法的重载例子,Given the following code,which method declarations,when inserted at the indicated position,will not cause the program to fail compilation?,public class,TestOverload,public long sum(long a,long b)return,a+b,;,/insert new method,decaration,here,A public,int,sum(,int,a,int,b)return,a+b,;,B public,int,sum(long a,long b)return 0;,C private long sum(long a,long b)return,a+b,;,D public long sum(long a,int,b)return,a+b,;,20,构造方法的重载,构造方法的重载:要求使用不同的参数个数、不同的参数类型、不同的参数类型顺序,构造对象时,根据参数的类型、个数、顺序,系统自动调用相应的构造方法。,class Person,String name;,int,age;,Person(String,n,int,a,),name=n;age=a;,Person(String,n)name=n;age=-1;,21,关键字,this,(1),Java,中为解决变量的命名冲突和不确定性问题,引入关键字“,this,”,代表其所在方法的,当前对象,。,构造方法中指该方法所创建的新对象,普通方法中指调用该方法的对象,22,关键字,this,(2),public class ThisSample,private int year;,private int month;,private int day;,public ThisSample(int year,int month,int day),this.year=year;this.month=month;,this.day,=day;,public void setYear(int year)this.year=year;,public void setMonth(int m)month=m;,public void setDay(int d)day=d;,public void setting(),this.setYear(2001);,this.setMonth(9);,setDay(11);/,同,this.setDay(11);,23,this,的使用:构造方法,构造方法中,还可以,用,this,来调用另一个构造方法,。,Class Person,String name;,int,age;,Person(,int,age,String name),this.age,=age;,this.name,=name;,Person(),this(0,”);,.,在构造方法中调用另一个构造方法,则这条语句必须放在第一句,24,构造方法 举例,public class Person,private String name;,private,int,age;,private Date,birthDate,;,public,Person(String,name,int,age,Date d),this.name,=name;,this.age,=age;,birthDate,=d;,2 public,Person(String,name,int,age),this(name,age,null);,3 public,Person(String,name,Date d),this(name,30,d);,4 public,Person(String,name),this(name,30);,25,Ex1,课后练习,public class,MyDate,private,int,day=12;,private,int,month=6;,private,int,year=1900;,public,MyDate,(int,y,int,m,int,d),year=y;,month=m;,day=d;,public void display(),System.out.println(year,+/+month+/+day);,public static void,main(String,args,),MyDate,m;,m=new MyDate(2001,9,22);,m.display,();,为,MyDate,类分别编写几个构造方法(无参数、一个参数、两个参数、其他类型参数等)。,注意要使用关键字,this,在,main,方法中分别使用多种参数构造,MyDate,类型的对象,分别使用,display(),方法输出构造结果,体会构造方法的重载。,26,编译单元,一个,java,源代码文件称之为一个编译单元。,一个编译单元中,只能有一个,public,类,,该类名与文件名相同。编译单元中的其他类是该主,public,类的支撑类。,经过编译,编译单元中的,每个类都产生,一个.,class,文件。,27,编译单元,Java,语言的原程序代码的每个编译单元只能包含下列内容,(,注释除外):,一个包声名(,package,),一个或多个包的引入语句(,import,),一个或多个类的声明(,class
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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