




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言,第3章Java面向对象基础,学习目标:理解类和对象的数据表示方法掌握面向对象的程序运行机制OO、OOP、OOD(ObjectOrientedObjectOrientedProgrammingObjectOrientedDesign),主要内容,3.1初识类与对象3.2修饰符3.3Java可重用类简介及Java文档介绍,3.1初识类与对象,主要内容:一、类与对象的含义二、类的构成三、对象的创建与使用,一、类与对象的含义,数据类型:是一个值的集合和定义在这个值集上的一组操作的总称。类在Java语言中是一种自定义的数据类型。,一、类与对象的含义,Java语言的数据表示有两种类型:基本数据类型:表示一元数据数据类型是一个值的集合及定义在这个值集上的一组操作的总称。类类型(复合数据类型):类的实质是一种自定义的复合数据类型,允许我们把自定义的数据组合及数据操作封装在一起。类是自定义的数据类型,是抽象的数据类型对象是类类型的变量,也称作类的实例,二、类的构成,例题4.1:classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;voidshowYear()System.out.println(year+年);voidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);,成员变量,构造函数,成员函数,成员函数的格式,函数名(形式参数列表)函数体(实现函数功能的算法程序),voidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);,构造函数的格式,函数名(参数列表)函数体(为成员变量进行初始化的语句),myDate();/默认形式myDate(intyear,intmonth,intday)/自定义形式this.year=year;/this关键字this.month=month;this.day=day;,关于构造函数的说明,构造函数名与类名严格相同;myDate()构造函数没有返回值类型,如果指定了返回值类型包括void,构造函数将被视作普通的成员函数;构造函数可以有多个;称为函数的重载。myDate(intyear,intmonth,intday)如果没有自定义构造函数,系统自动提供一个形如myDate()的默认构造函数;构造函数的作用是对对象进行初始化,在创建对象时调用。,类的构成总结,类由成员变量、构造函数、成员函数三部分构成;成员变量是一组变量的声明;成员函数是以函数的形式自定义的一组操作;构造函数定义了对象的初始化方法;类具有封装性,是一个独立的程序单位。在不包含main()函数的情况下,不能独立运行。,三、对象的创建与使用,对象的声明方法和变量声明一样myDatedate1;对象的创建用new关键字,如:myDatedate1;date1=newmyDate();myDatedate2=newmyDate(2008,8,8);,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,对象名.成员变量名,默认初始化,this.year=year;this.month=month;this.day=day;,三、对象的创建与使用,可以用赋值语句为成员变量赋值date1.year=2007;date1.month=3;date1.day=27;对象可以通过点操作符调用成员函数date1.showYear();/运行结果?date2.showDate(false);/运行结果?,date1.yeardate1.monthdate1.day,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,内存,ProgramCodes,usingDate.java,输出窗口,0,0,0,.,内存,ProgramCodes,usingDate.java,date1.yeardate1.monthdate1.day,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,2008,0,0,0,.,内存,ProgramCodes,usingDate.java,8,8,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,Date1is:,2008,0,0,0,.,内存,ProgramCodes,usingDate.java,8,8,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,Date1is:0年,2008,0,0,0,.,内存,ProgramCodes,usingDate.java,8,8,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,Date1is:0年BeijingOlympicsdayis:,2008,0,0,0,.,内存,ProgramCodes,usingDate.java,8,8,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,Date1is:0年BeijingOlympicsdayis:,2008,0,0,0,false,.,内存,ProgramCodes,usingDate.java,8,8,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,format,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,2008,0,0,0,false,.,内存,ProgramCodes,usingDate.java,8,8,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,format,Date1is:0年BeijingOlympicsdayis:,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,2008,0,0,0,false,.,内存,ProgramCodes,usingDate.java,8,8,date1.yeardate1.monthdate1.day,date2.yeardate2.monthdate2.day,format,Date1is:0年BeijingOlympicsdayis:8/8/2008,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,输出窗口,.,内存,ProgramCodes,usingDate.java,Date1is:0年BeijingOlympicsdayis:8/8/2008,classmyDateintyear;intmonth;intday;myDate();myDate(intyear,intmonth,intday)this.year=year;this.month=month;this.day=day;publicvoidshowYear()System.out.println(year+年);publicvoidshowDate(booleanformat)if(format=true)System.out.println(year+年+month+月+day+日);elseSystem.out.println(month+/+day+/+year);classusingDatepublicstaticvoidmain(Stringargs)myDatedate1=newmyDate();myDatedate2=newmyDate(2008,8,8);System.out.print(Date1is:);date1.showYear();System.out.print(BeijingOlympicsdayis:);date2.showDate(false);,publicclassPointintx;inty;publicPoint()publicPoint(intx,inty)this.x=x;this.y=y;publicdoubledistance()returnMath.sqrt(x*x+y*y);publicvoiddraw()System.out.println(Point:thisisapoint.);publicclassUsingPointpublicstaticvoidmain(Stringargs)Pointp1=newPoint();/构造类Point的对象p1Pointp2=newPoint(3,4);/构造类Point的对象p2System.out.println(Thedistancefromthep1toorginis:+p1.distance();System.out.println(Thedistancefromthep2toorginis:+p2.distance();System.out.println();p1.draw();p2.draw();,掌握Java类的构成理解Java程序的运行机制!,小结,类是自定义的数据类型对象是类类型的变量,称作类的实例类是对象的模板,对象是类的实例,类由成员变量、构造函数、成员函数构成创建对象用new关键字调用构造函数,对象的成员变量和成员函数的访问用对象名成员变量对象名成员函数,publicclassPointintx;inty;/成员变量publicPoint()x=0;y=0;/构造函数publicPoint(intX,intY)x=X;y=Y;publicdoubledistance()returnMath.sqrt(x*x+y*y);/成员函数publicclassUsingPointpublicstaticvoidmain(Stringargs)Pointp=newPoint(5,5);doubledis;dis=p.distance();System.out.println(Point:+(+p.x+,+p.y+);System.out.println(点P到原点的距离为:+dis);,3.2修饰符,类名、成员变量、成员函数之前,都可以加修饰符。成员变量修饰符:public、(默认)、private、protected、static、final成员方法修饰符:除上述外,abstract类修饰符:public、(默认)、final、abstract-本章仅介绍红色标识的修饰符-,本节主要内容,一、访问控制修饰符:public、(默认)、private、protected、二、静态修饰符:static,一、访问控制修饰符,public-修饰的变量或者方法可以被所有类访问。(默认)-变量或者方法可以被本类或者同包类访问。private-修饰的变量或者方法只能被本类访问。protected修饰的变量或者方法可以被本类、子类或者同包类访问。举例说明public与private的区别,二、静态修饰符static,静态修饰符修饰的变量和方法也称为类变量或者类方法;不必创建对象,直接用类名就可以访问;也可以用对象名访问;多个对象共用同一个存储空间。例如:System.out.println()举例:Chinese.javateststatic.java,Chinese.java,classChinesepublicstaticStringcountry=中国;publicStringname;publicintage;Chinese()StringgetCountry()returncountry;StringgetName()returnname;intgetAge()returnage;,teStstatic.java,classtestStaticpublicstaticvoidmain(Stringargs)Chinesepeople1=newChinese();Chinesepeople2=newChinese();System.out.println(Chinese.country);System.out.println(people1.country);System.out.println(people2.country);people1.country=CHINA;System.out.println(people1.country);System.out.println(people2.country);,输出结果:中国中国中国CHINACHINA,理解main()方法,publicstaticvoidmain(Stringargs),Math类中的常用static变量和方法,staticdoubleE;staticdoublePI;staticdoubleabs(doublea)staticdoublelog(doublea)staticdoublelog10(doublea)staticdoublepow(doublea,doubleb)staticdoublesin(doublea)举例testMath.java,testMath.java,classtestMathpublicstaticvoidmain(Stringargs)System.out.println(PIis:+Math.PI);System.out.println(Eis:+Math.E);System.out.println();System.out.println(-100的绝对值:+Math.abs(-100);System.out.println(E的自然对数:+Math.log(Math.E);System.out.println(2的3次方:+Math.pow(2,3);System.out.println(30度角的正弦值:+Math.sin(Math.PI/6);,3.3Java可重用类及JavaAPI文档简介,Java可重用类:String、Math、JOptionPane、学习方法:了解其构造函数的形式-正确创建对象;了解其成员变量掌握其成员函数的使用如何了解?使用JavaAPI文档API-ApplicationProgrammingInterface-应用编程接口ftp:/,编程求两个整数和,importjavax.swing.JOptionPane;classaddpublicstaticvoidmain(Stringargs)intaddNum1,addNum2,sum;StringaddNumStr1,addNumStr2,sumStr;addNumStr1=JOptionPane.showInputDialog(“请输入第一个加数”);addNumStr2=JOptionPane.showInputDialog(“请输入第二个加数”);addNum1=Integer.parseInt(addNumStr1);addNum2=Integer.parseInt(addNumStr2);sum=addNum1+addNum2;sumStr=String.valueOf(sum);JOptionPane.showMessageDialog(null,sumStr);,本节主要内容,一、Java系统类库结构简介二、String类简介三、Java类型包装器简介,一、Java类库简介,Java常用的包的简单介绍如下:java.lang包主要含有与语言相关的类。jave.io包主要含有与输入输出相关的类。java.util包包括许多具有特定功能的类。java.swing包和java.awt包提供了创建图形用户界面元素的类。包含有与网络操作相关性的类。java.applet包含有控制Hotjava浏览器的类。,Java,Java.lang,J,Java.io,Java.util,Java.applet,Java.swing,Java.lang.math,Java.lang.system,.,Java.io.file,.,.,.,.,Java包层次图,Java类库的使用方式:,继承类库中的类,用户自定义的类为系统类的子类,这样就可以继承系统类中的所有成员和特性。直接使用系统类中的成员。当系统类中的域和方法是静态成员时,应用程序可以直接使用它们。在用户自定义的类中直接创建系统类的对象。实现类库中的接口,在用户自定义的类中实现类库中的接口。,二、String类简介,java.lang.String类字符串/字符序列构造函数publicString()publicString(bytebytes)publicString(bytebytes,intoffset,intlength)publicString(bytebytes,StringcharsetName)publicString(charvalue)publicString(charvalue,intoffset,intcount)publicString(Stringoriginal),字符串的创建String类构造函数的使用,Stringstr5=“thePRC”;Stringstr1=newString();Stringstr2=newString(“bipt”);Stringstr3=newString(“中国”);charchs=b,e,i,j,i,n,g;Stringstr4=newString(chs);byteb=97,98,99;Stringstr5=newString(b);,String类的成员函数,判断字符串相等的方法publicbooleanequals(ObjectanObject)判断是否内容相同,是ture;否falsepublicbooleanequalsIgnoreCase(StringotherString)判断内容上不考虑大小写publicintcompareTo(StringanotherString)判断两个字符串的内容是否相同,是0;否不等于0的整数publicintcompareToIgnoreCase(Stringstr)基本功能同上,仅仅在判断时不考虑大小写,String类成员函数的使用,java.lang.String类字符串/字符序列判断字符串相等的方法,Strings1=java语言;Strings2=JavA语言;System.out.print(s1.equals(s2);System.out.print(s1.equalsIgnoreCase(s2);System.out.print(pareTo(s2);System.out.print(pareToIgnoreCase(s2);,运行结果:falsetrue320,String类的成员函数,获取长度:publicintlength()字符串的长度,即包含多少个字符获取特定子串和字符publicStringsubstring(intbeginIndex)publicStringsubstring(intbeginIndex,intendIndex)beginIndex:起始索引位置(包含)endIndex:结束索引位置(不包含)publiccharcharAt(intindex),String类成员函数的使用,java.lang.String类字符串/字符序列举例,Strings1=java语言;Strings2=JavA语言;System.out.println(s1.length();System.out.println(s2.length();System.out.println(s1.substring(0,4);System.out.println(s1.substring(4);System.out.println(s2.substring(4,5);System.out.println(s2.substring(4);System.out.println(s1.charAt(0);,运行结果:66java语言语语言j,String类的成员函数,java.lang.String类字符串/字符序列publicbooleanstartsWith(Stringprefix)判断字符串是否以一特定的字符串开头publicbooleanstartsWith(Stringprefix,inttoffset)publicbooleanendsWith(Stringsuffix)判断字符串是否以一特定的字符串结束,System.out.println(java语言.startsWith(java);System.out.println(java语言.startsWith(ava,1);System.out.println(java语言.endsWith(语言);,String类的成员函数,java.lang.String类字符串/字符序列查询特定字符/字符串的位置publicintindexOf(intch)该字符在字符串中第一次出现位置的索引值;否则返回-1publicintindexOf(intch,intfromIndex)publicintindexOf(Stringstr)publicintindexOf(Stringstr,intfromIndex)publicintlastIndexOf(intch)publicintlastIndexOf(intch,intfromIndex)publicintlastIndexOf(Stringstr)publicintlastIndexOf(Stringstr,intfromIndex),String类成员函数的使用,java.lang.String类字符串/字符序列方法举例,Strings=“java语言”;System.out.println(s.indexOf(a);System.out.println(s.indexOf(a,2);System.out.println(s.indexOf(“a”);System.out.println(s.indexOf(“语言”);System.out.println(s.lastIndexOf(a);System.out.println(s.lastIndexOf(v,1);System.out.println(s.lastIndexOf(“语言”);System.out.println(s.lastIndexOf(“v”,2);,运行结果:13143-142,String类的成员函数,java.lang.String类字符串/字符序列其他方法publicStringconcat(Stringstr)连接字符串publicStringreplace(charoldChar,charnewChar)在字符串中进行字符替换,String类的成员函数,java.lang.String类字符串/字符序列其他方法publicStringtrim()将字符串头尾的空格字符删除publicStringtoLowerCase()字符串中字符转为小写publicStringtoUpperCase()字符串中字符转为大写一些静态方法publicstaticStringvalueOf(booleanb)publicstaticStringvalueOf(charc)publicstaticStringvalueOf(inti)publicstaticStringvalueOf(longl)publicstaticStringvalueOf(floatf)publicstaticStringvalueOf(doubled),String类成员函数的使用,Strings1=newString(“java”);Strings2=newString(“java”);Strings3=“java”;Strings4=“java”;System.out.println(s1=s2);System.out.println(s3=s4);System.out.println(s1.equals(s2);System.out.println(s3.equals(s4);System.out.println(pareTo(s2);System.out.println(pareTo(“xava”);,运行结果:falsetruetrueTrue0-14,结论:Strings1=“abc”;字符串常量对象Strings2=“abc”;不同常量对象共享同一对象2.使用new关键字分配新的内存空间,三、Java类型包装类,String类型转换为基本数据类,publics
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司安全教育培训
- 优化职业教育教学模式细则
- 2025重庆渝北区第三实验小学招聘学科教师若干人笔试备考试题及答案解析
- 2025至2030年中国成人用品行业市场调查研究及发展战略规划报告
- 利用数据分析优化营销方案
- 公司客户信息保护
- 促销活动执行规定
- 水利工程设计规范与规定
- 2025年泌尿科尿路感染临床诊疗经验交流考试卷答案及解析
- 船舶货物运输管理规程
- 《研学旅行课程设计》课件-制订研学课程目标
- JJF 1033-2023 计量标准考核规范
- 公安当场处罚案件培训课件
- 肉毒中毒医学课件
- EGFR信号转导机制及靶向治疗
- 领导力与团队建设技巧
- 畜牧业的畜禽疫病防控
- 抹灰工实操比赛方案
- 新人教版五年级小学数学全册奥数(含答案)
- 改写地球历史的25种石头
- 《冠心病科普》课件
评论
0/150
提交评论