已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java基础知识培训,目录,第1章Java发展历史及现状第2章Java基本语法第3章面向对象,培训要点,3,第一章Java的趣味发展史以及现状第二章publicclass和class的声明的区别Java的数据类型基本数据类型引用数据类型数据类型的默认值数据类型的转换循环控制fordowhilewhileifelse数组,培训要点,方法方法的格式方法重载构造函数函数重载的区分为什么不以返回值区分重载方法方法与数组第三章this表示“调用方法的那个对象”在构造器里调用构造器的限制不能在一个构造器调用两个构造器必须将构造器调用置于最起始处,4,培训要点,开发的方式面向对象三个特征封装继承多态面向过程类的封装性类的图形表示构造方法匿名对象字符串Object的几个重要的方法Object.equalsObject.hashCodeObject.toString,5,培训要点,static在static方法内部不能调用非静态方法finalize工作原理析构函数设计一个简单的问题,要求用户输入用户和口令,如果用户为xiaoX,口令为123,则向控制台打印登录成功,否则打印登录失败构造函数私有化代码块内部类函数回调继承final关键字抽象类接口,6,培训要点,对象的多态性抽象类和接口的应用适配器模式简单工厂模式代理模式异常包持有对象字符串,7,Java发展史,SUN:斯坦福大学网络1991年GREEN项目C+新的平台Oak网景公司1995年Oak命名为Java1998年Java2Java技术的主要分支J2SEJ2MEJ2EEJAVA62012年即将推出JAVA7,8,Java发展史,三者之间的关系,9,Java特点,面向对象编译型语言编译型语言和解释型语言的区别:解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。Java虚拟机指针Java里不存在指针,因为java所有的对象,都是指针调用。低层以C+开发JVM保证了一次编译,处处运行(理论上)多厂家都有自己的jvm,10,Java基础命令,Java-versionJavacJdbjava-cp%MON_CP%XM%com.sdunicomsi.monitor.agent.AgentSendInfo源文件与字节码,publicclass和class的确别,建立一个文件名Person的类publicclassPersonDemo,12,关键字、标识符、转义符,在Java语言中,标识符是赋予变量、类和方法等的名称。标识符由编程者自己指定,但需要遵循一定的语法规范:(1)标识符由字母、数字、下划线(_)、美元符号($)组成,但美元符号用得较少。(2)标识符从一个字母、下划线或美元符号开始。(3)Java语言中,标识符大小写敏感,必须区别对待。(4)标识符没有最大长度的限制,但最好表达特定的意思。(5)标识符定义不能是关键字。,转义符,关键字又称保留字,是指Java语言中自带的用于标志数据类型名或者程序构造名等的标识符,如public、double等。转义符是指一些有特殊含义的、很难用一般方式表达的字符,如回车、换行等。所有的转义符以反斜线()开头,后面跟着一个字符来表示某个特定的转义符,/i+和+i是有区别的,/i+是在一个先使用后加1,即先使用i的值,后让i+1/+i则是先加1后使用,即先让i+1后再使用i的新值classijiajiapublicstaticvoidmain(Stringargs)System.out.println(HelloWorld!);inti=3;intcount=(i+)+(i+)+(i+);System.out.println(i);/i=6System.out.println(count);/count=12intj=3;count=(+j)+(+j)+(+j);/count=4+5+6System.out.println(j);/j=6System.out.println(count);/count=15,数据类型,基本数据类型intcharbytelongfloatdouble引用数据类型New接口类对象数组String是不基本数据类型,16,数据类型的默认值,基本数据类型都有自己的默认值privateintage;/默认值为0,17,控制语句,ifdo.whilewhileforforeach(JDK1.5之后的新特性),18,foreach示例,publicclassForEachpublicstaticvoidmain(Stringargs)Stringaa=小刚,小明,小敏,小红;/JDK1.4之前for(inti=0;iaa.length;i+)System.out.println(aai+、);/JDK1.5之后,包括JDK1.5foreach(Strings:aa)System.out.println(s+、);,19,数组的声明,intaa=newint10;intaa=null;aa=newint10;intaa=1,10,2;,20,方法,public数据类型|void方法名(参数类表)构造函数实际上就是一种重载函数重载的唯一标志就是参数列表,21,方法重载实例,classNumberpublicvoidadd(intx)System.out.println(intx=+x);publicintadd(intx)System.out.println(doublex=+x);Return1;publicclassMethodDemopublicstaticvoidmain(Stringargs)Numbernumber=newNumber();number.add(1);number.add(1f);,22,可变参数(新特性),publicclassMethod1publicstaticvoidmain(Stringargs)inttemp=2,4,6,8;fun();/没有参数fun(1);/一个参数fun(1,3,5,7,9);/一个参数fun(temp);publicstaticvoidfun(int.arg)for(intx:arg)System.out.print(x+、);System.out.println();,23,为什么不一返回值确定一个方法,publicclassMethodDemo1publicvoidfun()System.out.println(HelloUnion!);publicStringfun()System.out.println(HelloUnion!);publicstaticvoidmain(Stringargs)fun();,24,方法与数组,publicclassMethodArraypublicstaticvoidmain(Stringargs)inttemp=1,3,5,7,9;/声明数组fun(temp);print(temp);publicstaticvoidfun(intx)x0=6;/修改第一个元素publicstaticvoidprint(intx)for(inti=0;ix.length;i+)System.out.print(xi+、);,25,this关键字,调用类的属性this.属性调用类的方法this.方法调用类的构造方法this()表示当前对象this,26,this关键字,classPersonStringname;publicStringgetName()returnname;publicvoidsetName(Stringname)name=name;,27,this关键字,28,publicclassBookpublicBook()System.out.println(book);publicBook(intx)System.out.println(book);System.out.println(book+x);publicBook(intx,inty)System.out.println(book);System.out.println(book+x);System.out.println(book+y);,this关键字,29,publicclassBookpublicBook()System.out.println(book);publicBook(intx)this();System.out.println(book+x);publicBook(intx,inty)this(x);System.out.println(book+y);,Super关键字,调用父类的属性super.属性调用父类的方法super.方法调用父类的构造方法super()在构造函数内,super()必须放在第一行,开发方式,31,面向过程主要是解决问题,有点记叙文的味道面向对象是一套系统的开发的模式,更能贴近现实事物一种思路,开发方式,32,面向过程主要是解决问题,有点记叙文的味道面向对象是一套系统的开发的模式,更能贴近现实事物一种思路,特征抽象封装性继承性多态性,类和对象,33,类和对象,34,类的组成访问类的属性和方法,类的封装性,classPersonStringname;intage;publicclassClientPersonper=newPerson();=“小明”;per.age=-10;加入private,35,类的图形表示,36,构造方法与匿名对象,37,构造方法必须与类名相同构造方法没有返回值可以有多构造方法每个必须有构造方法classPerson通俗的说只使用一次的对象称为匿名对象,字符串拆分,38,publicclassStringDemopublicstaticvoidmain(Stringargs)Strings=asd,333,2222,000,1111;Strings_a=s.split(,);for(Strings1:s_a)System.out.print(s1+、);System.out.print(n);Stringss=asd|333|fff|sss|asdfsad;这个字符串怎么根据”|”拆分为字符串数组?,Object.equals,39,classPersonintage;publicclassClientPersonper1=newPerson();Personper2=per1;Per2.age=1;System.out.println(per1.equals(per2);,Object.equals,40,classPersionprivateintage;publicintgetAge()returnage;publicvoidsetAge(intage)this.age=age;Overridepublicbooleanequals(Objectobj)if(this=obj)returntrue;if(objinstanceofPersion)if(this.age=(Persion)obj).getAge()returntrue;returnfalse;publicclassEqualsDemo1publicstaticvoidmain(Stringargs)Persionper1=newPersion();Persionper2=newPersion();per1.setAge(10);per2.setAge(10);System.out.println(per1.equals(per2);,Object.hashCodetoString,41,一般重写了基类的equals方法,也要重写hashCode方法HashMapHashTabletoString的必要性classPersonintname;publicstaticvoidmain(Stringargs)System.out.println(newPerson();,static关键字,42,类名称.static属性/方法,finalize关键字,43,工作原理:一旦垃圾回收器准备释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。finalize不等于析构函数Finalfinally,登录示例,44,pubicclassClientpublicstaticvoidmain(Stringargs)Stringname=args0;Stringpassword=args1;if(name.equals(“xiaoX”),构造函数私有化,45,classMessageInfoprivateMessageInfo()publicclassClientpublicstaticvoidmain(Stringargs)MessageInfoinfo=newMessageInfo();,代码块,46,普通代码块构造块静态块,内部类,47,内部类就在一个类的内部又定义了一个类classOuterClassprivateintname;classInnerClasspublicvoidfun()System.out.println(name);,函数回调,48,publicinterfaceICallBackpublicvoidprint();publicclassPrinterICallBackic;voidsetCallBack(ICallBackic)this.ic=ic;voidexecute()ic.print();,函数回调,49,publicclassPrintHandlerpublicstaticvoidmain(Stringargs)Printerprinter=newPrinter();printer.setCallBack(newICallBack()publicvoidprint()System.out.println(Thisisacallback););/这句话可以设置成当满足某条件时再执行printer.execute();,继承,50,继承就是扩展已有类的功能,父类称为“超类”,子类称为“派生类”继承的限制子类的实例化过程方法的覆写,final关键字,51,声明类finalclassA声明方法publicfinalvoidfun()声明属性publicfinalStrings=“HelloUnion!”,抽象类abstract,52,abstractclassApublicabstractvoidfun();classClientpublicstaticvoidmain(Stringargs)Aa=null;a=newA();(cuowu)抽象类是否能用final关键字来修饰不能抽象类是否可以有构造函数必须有接口不可以有构造方法不能有方法体,接口,53,接口是一种特殊的类,在接口中定义的方法全部都是抽象方法,定义的属性全部都是全局常量一个类可以实现多个接口只有一个父类一个接口可以继承多个接口,多态性,54,向上转型:子类引用调用父类对象.向下转型:父类引用指向子类对象,可以调用子类的特有方法父类设计很重要,抽象类和接口的应用,55,适配器模式interfaceManageObjectpublicvoidfun1();publicvoidfun2();publicvoidfun3();但是我又不想实现ManageObject接口的所有方法,只有一部分方法是我需要的,怎么办?,抽象类和接口的应用,56,简单工厂模式interfaceFruitvoideat();classOrangeimplementsFruitpublicvoideat()System.out.pritnln(“吃桔子”);classClientpublicstaticvoidmain(Stringargs)Fruitfruit=newOrange();fruit.eat();如果,抽象类和接口的应用,57,简单工厂模式interfaceFruitvoideat();classOrangeimplementsFruitpublicvoideat()System.out.pritnln(“吃桔子”);classClientpublicstaticvoidmain(Stringargs)Fruitfruit=newOrange();fruit.eat();如果现在又多了一个水果为Apple,客户端现在不吃桔子了,改吃苹果,那只能修改Fruitfruit=newApple();这样设计的缺陷是什么?,抽象类和接口的应用,58,代理模式如果A类要去执行一个方法,但是A类不直接去执行,而是委托B类去执行,这个方法,那为什么这么做?interfaceZvoiddoIt();classAimplementsZpublicvoiddoIt()System.out.pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风机吊装组织方案
- 重症医学科(ICU)ARDS患者机械通气护理指南
- 2026年泰和县旅游投资发展有限公司及下属子公司面向社会公开招聘工作人员考试模拟试题及答案解析
- 孕妇便秘健康教育
- 男发发型设计
- 春季养生保健课件
- 公司资金计划管控方案
- 企业质量体系认证方案
- 初中八年级英语下册 Unit 5 过去进行时在情境叙事中的初步感知与应用教学设计
- 高中语文必修下册《无畏与怯懦》词汇哲学探究教案
- 个人职业形象塑造指导书
- 2025年专业公共营养师资格考试真题与答案解析
- 金太阳2026届高三联考313C语文试题(含答案)
- 华为内部晋升制度
- 2026年应急演练计划
- 火场内攻救人课件
- 危化企业防雷生产制度
- 2026年亿纬锂能行测笔试题库
- 《精细化工企业安全管理规范AQ 3062-2025》解读
- 化工安全设计课件
- 肠内营养耐受性评估要点
评论
0/150
提交评论