书签 分享 收藏 举报 版权申诉 / 98
上传文档赚钱

类型第四Java面向对象编程基础课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4371541
  • 上传时间:2022-12-03
  • 格式:PPT
  • 页数:98
  • 大小:559.24KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第四Java面向对象编程基础课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第四 Java 面向 对象 编程 基础 课件
    资源描述:

    1、第三章Java面向对象编程基础 第三章J a v a 面向对象编程基础3.1 java的类3.1.1 创建对象与定义构造函数3.1.2 系统定义的类3.2 方法3.3静态成员3.4包3.5访问控制符提纲3.1 j a v a 的类提纲Java 类J a v a 类掌握类的定义形式,java类的结构掌握对象实例化方法教学要求掌握类的定义形式,j a v a 类的结构教学要求 类是定义一个对象的数据和方法的蓝本;对象代表现实世界中可以明确标识的任何事物,包括状态和行为用户定义的类类是定义一个对象的数据和方法的蓝本;用户定义的类定义格式:修饰符 class 类名 extends 父类名 implem

    2、ents 接口名 类属性声明;类方法声明;用户定义的类修饰符:-访问控制符-抽象类(abstract)-最终类(final)定义格式:用户定义的类修饰符:class juxing int x;int y;int S()return x*y;属性方法类定义示例 c l a s s j u x i n g 属性方法类定义示例类定义示例class PhoneCard long cardNumber;private int password;double balance;String connectNumber;boolean connected;boolean performConnection(l

    3、ong cn,int pw)double getBalance()void performDial().属性方法类定义示例c l a s s P h o n e C a r d 属性方法创建对象1.格式:类名 新建对象名 new 构造函数(参数);eg:1.Phonecard mycard=new phonecard()创建对象格式:P h o n e c a r d m y c a r d=n e w p h2 使用对象的数据和方法public class testcirclepublic static void main(String args)circle mycircle=new ci

    4、rcle();System.out.println(the area of the circle of radius+mycircle.radius+is+mycircle.findarea();class circle double radius=1.0;double findarea()return radius*radius*3.14159;objectname.method引用对象的方法 objectname.data引用对象的数据2 使用对象的数据和方法构造函数构造函数名与类名同名,缺省形式:A()构造函数没有返回类型构造函数主要是完成对象的初始化工作构造函数在构造类对象时被系统自动

    5、调用执行,不可被显式调用执行构造函数构造函数名与类名同名,缺省形式:A()构造函数示例 class PhoneCard long cardNumber;private int password;double balance;PhoneCard(long lc,int ip,double db)cardNumber=lc;password=ip;balance=db;无返回类型没有return语句和类名一致PhoneCard m1=new PhoneCard();PhoneCard()PhoneCard m1=new PhoneCard(5,6,82.5);构造函数示例 c l a s s P

    6、h o n e C a r d 无返回类型没有例:使用构造函数public class TestCircleWithConstructorspublic static void main(String args)Circle myCircle=new Circle(5.0);System.out.println(The area of the circle of radius +myCircle.radius+is +myCircle.findArea();Circle yourCircle=new Circle();System.out.println(The area of the cir

    7、cle of radius +yourCircle.radius+is +yourCircle.findArea();class Circle double radius;Circle()radius=1.0;Circle(double r)radius=r;double findArea()return radius*radius*3.14159;例:使用构造函数p u b l i c c l a s s T e s t C i r c l构造函数示例构造函数示例 类中变量的默认初始化Java中,一个类中如果没有定义构造方法,则编译器会自动生成一个没有参数的构造方法,用来初始化类对象,并将类

    8、中变量自动初始化为该类型的默认值:类中变量的默认初始化 整型初始化为0;实型初始化为0.0f、0.0d;逻辑型初始化为false;字符型初始化为u0000;类对象初始化为null,表明不指向任何内存地址的引用如果类中定义了构造方法,则不会自动生成没有参数的构造方法。整型初始化为0;class Department int m_DeptNo=10;String m_DeptName;int m_DeptTotalEmp=30;Department(int dno,String dname,int total)m_DeptNo=dno;m_DeptName=dname;m_DeptTotalEmp

    9、=total;Department d0 =new Department()成员变量赋值1030nullc l a s s D e p a r t m e n t 成员变量赋值1 0 3 0 n u lDepartment d1 =new Department(45,”lg”,20)d1 Department d2 =new Department(33,”lg”,20)d24520lg3320lgD e p a r t m e n t d 1 4 5 2 0 l g 3 3 2 0 l g class Person String name;char sex;int age;double hei

    10、ght;Person(String s,char ch,int k,double d)name=s;sex=ch;age=k;height=d;String show()return 姓名:+name+性别:+sex+年龄:+age+身高:+height;课堂练习c l a s s P e r s o n 课堂练习public class deftype public static void main(String args)Person obj1=new Person(张勇,男,22,1.75);System.out.println(obj1.show();obj1.name=李涛;obj1

    11、.sex=女;System.out.println(obj1.show();p u b l i c c l a s s d e f t y p e 对象的内存模型如果一个对象没有被初始化,则该对象为null,表示不指向任何内存地址的引用。如果一个对象赋给另一个对象,则两个对象的引用地址相同,它们实际上是同一个对象,只是具有不同的名称。对象的内存模型简单类型赋值 I=j 对象类型赋值 c1=new circle(5);c2=new circle(5);赋值前 赋值后 赋值前 c1=c2 赋值后ii12 J j22c1 c2c1C2 C1:circleRadius=5C2:circleRadius

    12、=9简单类型变量和对象类型变量的区别:简单类型赋值 I=j 对象类型赋值 public class testequal public static void main(String args)Person p1=new Person(张勇,男,22,1.75);Person p2=new Person(张勇,男,22,1.75);System.out.println(p1=p2:+(p1=p2);Person p3=p1;System.out.println(p3=p1:+(p3=p1);p3.name=网友;System.out.println(p1.name:+p1.name);class

    13、 Person String name;char sex;int age;double height;Person(String s,char ch,int k,double d)name=s;sex=ch;age=k;height=d;p u b l i c c l a s s t e s t e q u a l 方法1.定义格式修饰符 返回类型 方法名(形式参数表)2 方法调用格式格式类名或对象名.方法名(实参表)方法1.定义格式2 方法调用格式3、说明1)方法名为合法标志符2)形式参数表是用,隔开的变量定义表每个变量必须逐个说明可以为空,或为void放在()内,()是方法的标志方法3、说

    14、明方法3)方法体4)返回类型与函数返回值有返回值函数:返回类型可以是任何已有类型函数体中必须使用return 表达式;结束函数的运行表达式类型须与返回类型匹配方法体中在return 语句后的语句不会被执行无返回值的函数:返回类型必须说明为void函数体中可用return 语句或不用3)方法体方法的重载 方法重载是指在同一个类里面,有两个或两个以上具有相同名称,不同参数序列的方法。例如,三角型类可以定义多个名称为area的计算面积的方法,有的接收底和高做参数,有的接收3条边做参数。这样做的好处是,使开发人员不必为同一操作的不同变体而绞尽脑汁取新的名字,同时也是使类的使用者可以更容易地记住方法的名

    15、称。1方法重载的规则 2重载方法的匹配方法的重载方法重载是指在同一个类里面,有两个或两个以上具有相 Public void println(boolean x)Public void println(int x)Public void println(char x)Public void println(long x)Public void println(float x)Public void println(double x)Public void println(String x)P u b l i c v o i d p r i n t l n(b o o l e a n x递归 程序

    16、由方法组成,而方法又以层次的方式调用其他的方法,但有些时候,这些方法需要调用自身从而方便地求解一些特殊的问题。递归方法就是自调用方法,在方法体内直接或间接地调用自己,即方法的嵌套是方法本身。递归的方式分为2种:直接递归和间接递归,下面分别介绍这2种递归。递归程序由方法组成,而方法又以层次的方式调用其他的方法,但有 字符串常量(对象)构造方法 public String()pubic String(String s)public String(char value)java.lang.String 字符串常量(对象)j a v a.l a n g.S t r i n gString str1=“

    17、hello”String s1=new String();string s1=new String(abcd);char a=new chare,f,g,h;String s1=new String(a);abcdefghs1S t r i n g s t r 1=“h e l l o”a b c d e f g h s 1获取字符串长度public int length()判断字符串的前缀和后缀public boolean startsWith(String prefix)public boolean endsWith(String suffix)java.lang.String获取字符串长

    18、度j a v a.l a n g.S t r i n gs1.length()s1.startsWith(jk)s1.endWith(jk)efghs14falsefalses 1.l e n g t h()e f g h s 1 4 f a l s e f a l s e字符串中单个字符查找public int indexOf(int ch)public int indexOf(int ch,int fromIndex)public int lastIndexOf(int ch)public int lastIndexOf(int ch,int fromIndex)public char c

    19、harAt(int index)java.lang.String字符串中单个字符查找j a v a.l a n g.S t r i n gs1.charAt(2)s1.indexOf(e)s1.indexOf(e,1)efghs1g0-1s 1.c h a r A t(2)e f g h s 1 g 0-1s1.indexOf(ef)s1.indexOf(ef“,1)s1.substring(0,2)efghs10-1efgs 1.i n d e x O f(e f )e f g h s 1 0-1 e f g替换字符串中的字符 public String replace(char so,ch

    20、ar dst)字符串大小写转换 public String toLowerCase()public String toUpperCase()java.lang.Stringj a v a.l a n g.S t r i n g String s2=s1.replace(e,a)s2=s1.toUpperCase()efghs1afghs2efghs1EFGHs2e f g h s 1 a f g h s 2 e f g h s 1 E F G H s 2比较两个字符串public int compareTo(String anotherString)public boolean equals(

    21、Object anObject)连接字符字串public String concat(String str)基本数据类型转换为字符串 public static String valueOf(X x)java.lang.String比较两个字符串j a v a.l a n g.S t r i n pareTo(dddddddddddd)s1.equals(“efgh”)s1.equalsIgnore(“EFGH”)String s3=s1.concat(“ijk”);String s4=String.valueOf(56);1efghs1truetrueefghs1efghijks356s4s

    22、 1.c o m p a r e T o(d d d d d d d d d d d d )1 epublic class Stringdemo public static void main(String args)String s=string test;int stringlength=s.length();/获得字符串长度 System.out.println(stringlength=+stringlength);boolean startsTest=s.startsWith(str);/检查字符串前缀与后缀 boolean endsTest=s.endsWith(est);Syst

    23、em.out.println(startTest=+startsTest+endTest=+endsTest);int blankindex=s.indexOf(s);/查询特定字符位置 System.out.println(blankindex=+blankindex);int substringindex=s.indexOf(est);/查询特定子串位置 System.out.println(substringindex=+substringindex);int lastindex=s.lastIndexOf(s);/逆向查询特定子串或字符位置 System.out.println(las

    24、tindex=+lastindex);p u b l i c c l a s s S t r i n g d e m o p uString s2=string testa;String s3=string testb;/字符串比较 int compare=pareTo(s3);System.out.println(compare=+compare);boolean equaltest=s2.equals(s);/字符串相等判断 System.out.println(equaltest=+equaltest);char singlechar=s.charAt(3);/得到特定位置的字符 Sys

    25、tem.out.println(singlechar=+singlechar);String substring=s.substring(3);/得到从特定位置开始的子串 System.out.println(substring=+substring);String s4=string test;String trimstring=s4.trim();/除去字符串两端的空白字符 System.out.println(trimstring=+trimstring);String uppercase=trimstring.toUpperCase();/得到字符串大写与小写 String lower

    26、case=trimstring.toLowerCase();System.out.println(uppercase=+uppercase);System.out.println(lowercase=+lowercase);stringlength=12startTest=true endTest=falseblankindex=0substringindex=8lastindex=9compare=-1equaltest=falsesinglechar=isubstring=ing test trimstring=string testuppercase=STRING TESTlowerca

    27、se=string testS t r i n g s 2=s t r i n g t e s t a ;s t r i n 构造方法public StringBuffer()public StringBuffer(int length)public StringBuffer(String str)字符串变量的扩充、修改与操作public StringBuffer append(String str)public StingBuffer insert(int offset,char ch)public StringBuffer deleteCharAt(int s)public StringB

    28、uffer delete(int start,int end)public StringBuffer reverse()public StringBuffer setCharAt(int in,char ch)java.lang.StringBuffer 构造方法j a v a.l a n g.S t r i n g B u f f e rStringBuffer s1=new StringBuffer();StringBuffer s2=new StringBuffer(abcd);StringBuffer s3=new StringBuffer(6);s2.insert(1,gggg);s

    29、2.setCharAt(1,d);s3.append(odj);s1abcds2 s3aggggbcds2adgggbcds2odjs3S t r i n g B u f f e r s 1=n e w S t r i n g B u f f s2.deleteCharAt(1);s2.reverse()agggbcds2dcbgggas2 a g g g b c d s 2 d c b g g g a s 2public class stringbufferdemo public static void main(String args)StringBuffer buffer=new Str

    30、ingBuffer();buffer.append(s);buffer.append(tringbuffer);System.out.println(buffer.charAt(1);System.out.println(buffer.capacity();System.out.println(buffer.indexOf(tring);System.out.println(buffer=+buffer.toString();t161buffer=stringbufferp u b l i c c l a s s s t r i n g b u f f e r d e m o 数组(对象)1.

    31、数组(存储一组同类型的数据)1)声明与创建(分三步走)声明数组 数据类型 数组名 int a;int a;创建数组空间 数组名new 数据类型数组大小 a=new int5;int a=new int5;数组(对象)1.数组(存储一组同类型的数据)2)数组的初始化和处理Length(返回数组的大小)double a=new double10;a.length=10下标0-arrayobject.length-1 数组元素的表示数组名【下标】数组元素赋值for(int i=0;ia.length;i+)ai=i;同时创建 int b=1,2,3,4,5;2)数组的初始化和处理 对象数组 Circ

    32、le circlearray=new circle10;For(int i=0;icirclearray.length;i+)circlearrayi=new circle();对象数组class circle float fradius;int x,y;circle(float fradius,int x,int y)this.fradius=fradius;this.x=x;this.y=y;public float computearea()return(float)Math.PI*fradius*fradius;public class objectarraydemo public s

    33、tatic void main(String args)circle arraycircle=new circle(2.0f,0,0),new circle(4.0f,1,1),new circle(5.0f,2,2);int i;float farea=0;for(i=0;iarraycircle.length;i+)farea=putearea();System.out.println(di+(i+1)+cirlce area:+farea);c l a s s c i r c l e/数组符值是把同一数组空间取了一个别名public class arrayfuzhi public sta

    34、tic void main(String args)int a=1,2,3,4;int d=new int5,6,7,8;a=d;for(int i=0;ia.length;i+)System.out.println(a+i+=+ai+nd+i+=+di);d0=56;System.out.println(a0=+a0+nd0=+d0);a0=5d0=5a1=6d1=6a2=7d2=7a3=8d3=8a0=56d0=56/数组符值是把同一数组空间取了一个别名a 0 =5/数组拷贝class testarraypublic static void main(String args)int num

    35、1=new int1,2,3;int num2=new int3;System.arraycopy(num1,0,num2,0,num1.length);for(int i=0;inum1.length;i+)System.out.println(num2i);1 2 3/数组拷贝class testarraypublic static void main(String args)int num1=new int1,2,3;int num2=new int10;System.arraycopy(num1,1,num2,8,2);for(int i=0;inum2.length;i+)Syste

    36、m.out.println(num2i);0000000023c l a s s t e s t a r r a y 02.二维数组1)定义2)性质实质是一维数组的一维数组length是行数3)操作二维数组元素下标访问元素交换2.二维数组/二维数组int f=2,3,4,4,5,6;System.out.println(f.length=+f.length);/二维数组是数组的数组int g=new int 2;g0=new int5;g1=new int5/创建多维数组空间时可把行和列分开f=new int 6;for(int i=0;if.length;i+)fi=new int i+1;

    37、234456 /二维数组2 3 4 4 5 6 public class arraydemo public static void main(String args)int narray=new int 4;narray0=new int1;narray1=new int2;narray2=new int3;narray3=new int4;int ncounter=0;for(int m=0;mnarray.length;m+)for(int n=0;nnarraym.length;n+)narraymn=ncounter;ncounter+;for(int m=0;mnarray.leng

    38、th;m+)for(int n=0;n=1)System.out.println(c.radius+tt+c.findArea();c.radius+;times-;p u b l i c c l a s s T e s t P a s s i n g O b j e c t属性修饰符:A:访问控制符:public protected private defaultB:static final volatile1)A中几种修饰符不可同时修饰类的属性2)B中final与volatile不可共存方法修饰符:A:访问控制符:public protected private defaultB:abst

    39、ract static final native synchronized类的修饰符:类访问控制符A:public default B:abstract final1)abstract与final不可同时用来修饰类修饰符的使用属性修饰符:修饰符的使用Package teacher;Public class test2 Package teacher;class test2 Package teacher;class test1 public static void main(String args)test2 t2=new test2();PUBLIC可以被任意外部(不同包中)访问DEFAUL

    40、T在同一个包中可以访问Package student;Public class test2 Package student;class test2 P a c k a g e t e a c h e r;P a c k a g e t e a c h e Public protected defaultprivate属性与方法 同类同包 子类(不同包)通用性(不同包非子类)访问权限表 范围A:所有类B:包中类D:本类C:所有子类E:包中子类public缺省privateprotected范围A:所有类B:包中类D:本类C:所有子类E:包中p u b l4-74-71)A中几种控制符不可共存2)

    41、abstract与final不可共存abstract final class c3)abstract 与static不可共存 4)abstract与private不可共存 5)abstract与native不可共存6)abstract方法必须在abstract类中7)static方法只能处理static属性方法修饰符的使用1)A 中几种控制符不可共存方法修饰符的使用public class A abstract void p();int k=9;static int j=8;final A a1=new A();final void q()public static void main(Str

    42、ing args)int i=j;int i=k;A a=new A();a.a1=new A();q();K是非satatic属性q是非satatic方法p u b l i c c l a s s A K 是非s a t a t i c 属性q 是非spublic final class test volatile final int j=9;public static final int k=20;public test().final test().abstract final void q()abstract void p()abstarct方法不可在非abstract类中p u b

    43、l i c f i n a l c l a s s t e s t a b s t a r本章内容回顾 掌握类的定义 掌握对象的实例化 掌握类成员访问的方法(特别是方法的调用)清楚对象的初始化过程 了解访问控制符的控制范围 了解其他修饰符的作用本章内容回顾掌握类的定义写一名为STOCK 的类模拟股票,类的属性和方法如下:,方法CHANGEPERCENT 表示当前价格与上期收盘价变化的百分比 stock private string symbol public double currentprice private string name public stock()private double

    44、 previousclosingprice public stock(string symble,string name)public string getsymble()public string gertname()public double getpreviousclosingprice()public double gercurrentprice()Public void setsymbol(string symbol)Public void setname(string name)Public void setpreviousclosingprice(double price)Public void setcurrentprice(double price)Public double changepercent()写一个用户测试STOCK类,创建一个对象,其股票标志为SUNW,名称为SUN MICROSYSTEM INC,上期收盘价为100,随机设置一个新的当前价,显示价格变化百分比写一名为S T O C K 的类模拟股票,类的属性和方法如下:,方法

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第四Java面向对象编程基础课件.ppt
    链接地址:https://www.163wenku.com/p-4371541.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库