1、JavaJava基础知识培训基础知识培训目录第第1章章 Java发展历史及现状发展历史及现状第第2章章 Java基本语法基本语法 第第3章章 面向对象面向对象 培训要点3n第一章第一章nJavaJava的趣味发展史以及现状的趣味发展史以及现状n第二章第二章npublic class public class 和和classclass的声明的区别的声明的区别nJavaJava的数据类型的数据类型n基本数据类型基本数据类型n引用数据类型引用数据类型n数据类型的默认值数据类型的默认值n数据类型的转换数据类型的转换n循环控制循环控制nforforndowhiledowhilenwhilewhileni
2、f elseif elsen数组数组培训要点方法方法的格式方法重载构造函数函数重载的区分为什么不以返回值区分重载方法方法与数组第三章this表示“调用方法的那个对象”在构造器里调用构造器的限制不能在一个构造器调用两个构造器必须将构造器调用置于最起始处4培训要点开发的方式面向对象三个特征 封装 继承 多态面向过程类的封装性类的图形表示构造方法匿名对象字符串Object的几个重要的方法Object.equalsObject.hashCodeObject.toString5培训要点static在static方法内部不能调用非静态方法finalize工作原理析构函数设计一个简单的问题,要求用户输入用户
3、和口令,如果用户为xiaoX,口令为123,则向控制台打印登录成功,否则打印登录失败构造函数私有化代码块内部类函数回调继承final关键字抽象类接口6培训要点对象的多态性抽象类和接口的应用适配器模式简单工厂模式代理模式异常包持有对象字符串7Java发展史SUN:斯坦福大学网络1991年 GREEN项目 C+新的平台Oak 网景公司1995年 Oak命名为Java1998年 Java2Java技术的主要分支J2SEJ2MEJ2EEJAVA62012年即将推出JAVA78Java发展史三者之间的关系9Java特点面向对象编译型语言编译型语言和解释型语言的区别:解释性语言在运行程序的时候才翻译,比如
4、解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。Java虚拟机指针Java里不存在指针,因为java所有的对象,都是指针调用。低层以C+开发JVM保证了一次编译,处处运行(理论上)多厂家都有自己的jvm10Java基础命令Java -versionJavacJdbjava-cp%MON_CP%XM%com.sdunicomsi.monitor.agent.AgentSendInfo源文件与字节码public class 和class的确别建立一个文件名Person的类public class Pe
5、rsonDemo12关键字、标识符、转义符在Java语言中,标识符是赋予变量、类和方法等的名称。标识符由编程者自己指定,但需要遵循一定的语法规范:(1)标识符由字母、数字、下划线(_)、美元符号($)组成,但美元符号用得较少。(2)标识符从一个字母、下划线或美元符号开始。(3)Java语言中,标识符大小写敏感,必须区别对待。(4)标识符没有最大长度的限制,但最好表达特定的意思。(5)标识符定义不能是关键字。转义符引 用 方 法 含 义 b 退格 t 水平制表符 Tab n 换行 f 表格符 r 回车 单引号 双引号 反斜线 关键字又称保留字,是指Java语言中自带的用于标志数据类型名或者程序构
6、造名等的标识符,如public、double等。转义符是指一些有特殊含义的、很难用一般方式表达的字符,如回车、换行等。所有的转义符以反斜线()开头,后面跟着一个字符来表示某个特定的转义符/i+和+i是有区别的,/i+是在一个先使用后加1,即先使用i的值,后让i+1/+i则是先加1后使用,即先让i+1后再使用i的新值 class ijiajia public static void main(String args)System.out.println(Hello World!);int i=3;int count=(i+)+(i+)+(i+);System.out.println(i);/i=
7、6 System.out.println(count);/count=12 int j=3;count=(+j)+(+j)+(+j);/count=4+5+6 System.out.println(j);/j=6 System.out.println(count);/count=15 数据类型基本数据类型 intcharbytelongfloatdouble引用数据类型New 接口 类对象 数组String是不基本数据类型16数据类型的默认值基本数据类型都有自己的默认值private int age;/默认值为017控制语句ifdo.whilewhileforforeach(JDK1.5之后的
8、新特性)18foreach示例public class ForEach public static void main(String args)String aa=小刚,小明,小敏,小红;/JDK1.4之前for(int i=0;i aa.length;i+)System.out.println(aai+、);/JDK1.5之后,包括JDK1.5foreach(String s:aa)System.out.println(s+、);19数组的声明int aa=new int10;int aa=null;aa=new int10;int aa=1,10,2;20方法public 数据类型|voi
9、d 方法名(参数类表)构造函数实际上就是一种重载函数重载的唯一标志就是参数列表21方法重载实例class Number public void add(int x)System.out.println(int x=+x);public int add(int x)System.out.println(double x=+x);Return 1;public class MethodDemo public static void main(String args)Number number=new Number();number.add(1);number.add(1f);22可变参数(新特性)
10、public class Method1 public static void main(String args)int temp=2,4,6,8;fun();/没有参数fun(1);/一个参数fun(1,3,5,7,9);/一个参数fun(temp);public static void fun(int.arg)for(int x:arg)System.out.print(x+、);System.out.println();23为什么不一返回值确定一个方法public class MethodDemo1 public void fun()System.out.println(Hello Un
11、ion!);public String fun()System.out.println(Hello Union!);public static void main(String args)fun();24方法与数组public class MethodArray public static void main(String args)int temp=1,3,5,7,9;/声明数组fun(temp);print(temp);public static void fun(int x)x0=6;/修改第一个元素public static void print(int x)for(int i=0;i
12、 x.length;i+)System.out.print(xi+、);25this 关键字调用类的属性 this.属性调用类的方法 this.方法调用类的构造方法 this()表示当前对象 this26this 关键字class Person String name;public String getName()return name;public void setName(String name)name=name;27this 关键字28public class Book public Book()System.out.println(book);public Book(int x)Sy
13、stem.out.println(book);System.out.println(book+x);public Book(int x,int y)System.out.println(book);System.out.println(book+x);System.out.println(book+y);this 关键字29public class Book public Book()System.out.println(book);public Book(int x)this();System.out.println(book+x);public Book(int x,int y)this(
14、x);System.out.println(book+y);Super关键字调用父类的属性 super.属性调用父类的方法 super.方法调用父类的构造方法 super()在构造函数内,super()必须放在第一行开发方式31n面向过程主要是解决问题,有点记叙文的味道面向过程主要是解决问题,有点记叙文的味道n面向对象是一套系统的开发的模式,更能贴近现实事物一种思路面向对象是一套系统的开发的模式,更能贴近现实事物一种思路开发方式32n面向过程主要是解决问题,有点记叙文的味道面向过程主要是解决问题,有点记叙文的味道n面向对象是一套系统的开发的模式,更能贴近现实事物一种思路,特面向对象是一套系统的
15、开发的模式,更能贴近现实事物一种思路,特征征n抽象抽象n封装性封装性n继承性继承性n多态性多态性类和对象33类和对象34n类的组成类的组成n访问类的属性和方法访问类的属性和方法类的封装性class Person String name;int age;public class ClientPerson per=new Person();per.name=“小明”;per.age=-10;加入private35类的图形表示36构造方法与匿名对象37n构造方法必须与类名相同构造方法必须与类名相同n构造方法没有返回值构造方法没有返回值n可以有多构造方法可以有多构造方法n每个必须有构造方法每个必须有构
16、造方法class Personclass Person 通俗的说只使用一次的对象称为匿名对象通俗的说只使用一次的对象称为匿名对象字符串拆分38public class StringDemo public static void main(String args)String s=asd,333,2222,000,1111;String s_a=s.split(,);for(String s1:s_a)System.out.print(s1+、);System.out.print(n);String ss=asd|333|fff|sss|asdfsad;这个字符串怎么根据”|”拆分为字符串数组?
17、Object.equals39class Personclass Personint age;int age;public class Clientpublic class ClientPerson per1=new Person();Person per1=new Person();Person per2=per1;Per2.age=1;System.out.println(per1.equals(per2);Object.equals40class Persion private int age;public int getAge()return age;public void setAg
18、e(int age)this.age=age;Overridepublic boolean equals(Object obj)if(this=obj)return true;if(obj instanceof Persion)if(this.age=(Persion)obj).getAge()return true;return false;public class EqualsDemo1 public static void main(String args)Persion per1=new Persion();Persion per2=new Persion();per1.setAge(
19、10);per2.setAge(10);System.out.println(per1.equals(per2);Object.hashCode toString41一般重写了基类的一般重写了基类的equalsequals方法,也要重写方法,也要重写hashCodehashCode方法方法HashMap HashTableHashMap HashTabletoStringtoString的必要性的必要性class Personclass Personint name;int name;public static void main(String args)public static void
20、main(String args)System.out.println(new Person();System.out.println(new Person();static 关键字42类名称类名称.static.static属性属性/方法方法finalize关键字43工作原理:一旦垃圾回收器准备释放对象占用的存储空间,将首先调用工作原理:一旦垃圾回收器准备释放对象占用的存储空间,将首先调用finalize()finalize()方法方法,并且在下一次垃圾回收动作发生时,才会真正回收对并且在下一次垃圾回收动作发生时,才会真正回收对象象占用的内存。占用的内存。finalizefinalize不等
21、于析构函数不等于析构函数FinalFinalfinallyfinally登录示例44pubic class Clientpubic class Clientpublic static void main(String args)public static void main(String args)String name=args0;String name=args0;String password=args1;String password=args1;if(name.equals(“xiaoX”)&password.equals(“123”)if(name.equals(“xiaoX”)&
22、password.equals(“123”)System.out.println(“System.out.println(“登录成功!登录成功!”);”);elseelseSystem.out.println(“登录失败!登录失败!”);构造函数私有化45class MessageInfoclass MessageInfoprivate private MessageInfo()public class Clientpublic class Clientpublic static void main(String args)public static void main(String args
23、)MessageInfo info=new MessageInfo();MessageInfo info=new MessageInfo();代码块46普通代码块普通代码块构造块构造块静态块静态块内部类47内部类就在一个类的内部又定义了一个类内部类就在一个类的内部又定义了一个类class OuterClass private int name;class InnerClass public void fun()System.out.println(name);函数回调48public interface ICallBack public void print();public class Pr
24、inter ICallBack ic;void setCallBack(ICallBack ic)this.ic=ic;void execute()ic.print();函数回调49public class PrintHandler public static void main(String args)Printer printer=new Printer();printer.setCallBack(new ICallBack()public void print()System.out.println(This is a callback););/这句话可以设置成当满足某条件时再执行pri
25、nter.execute();继承50继承就是扩展已有类的功能,父类称为继承就是扩展已有类的功能,父类称为“超类超类”,子类称为,子类称为“派生类派生类”继承的限制继承的限制子类的实例化过程子类的实例化过程方法的覆写方法的覆写final关键字51n声明类声明类nfinal class Afinal class An n声明方法声明方法npublic final void fun()public final void fun()n n声明属性声明属性npublic final String s=“Hello Union!”public final String s=“Hello Union!”抽
26、象类abstract52abstract class Aabstract class Apublic abstract void fun();public abstract void fun();class Clientclass Clientpublic static void main(String args)public static void main(String args)A a=null;A a=null;a=new A();a=new A();(cuowucuowu)抽象类是否能用抽象类是否能用finalfinal关键字来修饰关键字来修饰 不能不能抽象类是否可以有构造函数抽象类
27、是否可以有构造函数 必须有必须有 接口接口 不可以有构造方法不可以有构造方法 不能有方法体不能有方法体接口53n接口是一种特殊的类,在接口中定义的方法全部都是抽象方法,定义接口是一种特殊的类,在接口中定义的方法全部都是抽象方法,定义的属性全部都是全局常量的属性全部都是全局常量n一个类可以实现多个接口一个类可以实现多个接口n只有一个父类只有一个父类n一个接口可以继承多个接口一个接口可以继承多个接口多态性54n向上转型:子类引用调用父类对象向上转型:子类引用调用父类对象.n向下转型:向下转型:父类引用指向子类对象,可以调用子类的特有方法父类引用指向子类对象,可以调用子类的特有方法n父类设计很重要父
28、类设计很重要抽象类和接口的应用55n适配器模式适配器模式interface ManageObjectinterface ManageObjectpublic void fun1();public void fun1();public void fun2();public void fun3();但是我又不想实现但是我又不想实现ManageObject接口的所有方法,只有一部分方法是接口的所有方法,只有一部分方法是我需要的,怎么办?我需要的,怎么办?抽象类和接口的应用56n简单工厂模式简单工厂模式interface Fruitinterface Fruitvoid eat();void eat(
29、);class Orange implements Fruitclass Orange implements Fruitpublic void eat()public void eat()System.out.pritnln(“System.out.pritnln(“吃桔子吃桔子”);”);class Clientclass Clientpublic static void main(String args)public static void main(String args)Fruit fruit=new Fruit fruit=new Orange();fruit.eat();fruit
30、.eat();如果如果抽象类和接口的应用57n简单工厂模式简单工厂模式interface Fruitinterface Fruitvoid eat();void eat();class Orange implements Fruitclass Orange implements Fruitpublic void eat()public void eat()System.out.pritnln(“System.out.pritnln(“吃桔子吃桔子”);”);class Clientclass Clientpublic static void main(String args)public st
31、atic void main(String args)Fruit fruit=new Fruit fruit=new Orange();fruit.eat();fruit.eat();如果现在又多了一个水果为如果现在又多了一个水果为Apple,Apple,客户端现在不吃桔子了,改吃苹果,那只能修改客户端现在不吃桔子了,改吃苹果,那只能修改Fruit fruit=new Apple();这样设计的缺陷是什么这样设计的缺陷是什么?抽象类和接口的应用58n代理模式代理模式n如果如果A A类要去执行一个方法,但是类要去执行一个方法,但是A A类不直接去执行,而是委托类不直接去执行,而是委托B B类去执
32、行,这个方法,那为什么这类去执行,这个方法,那为什么这么做?么做?interface Zinterface Zvoid doIt();void doIt();class A implements Zclass A implements Zpublic void doIt()public void doIt()System.out.println();System.out.println();class B implements Zclass B implements Zprivate A a=null;private A a=null;public B(A a)public B(A a)thi
33、s.a=a;this.a=a;public void doIt()a.doIt();抽象类和接口的应用59n工厂模式工厂模式接口类Fruit.javapublic interface Fruit 水果类public class Banana implements Fruit public class Orange implements Fruit 工厂类public class Factory public static Fruit getFruit(String fruitName)Fruit fruit=null;if(Banana.equals(fruitName)fruit=new B
34、anana();else if(Orange.equals(fruitName)fruit=new Orange();return fruit;工厂模式客户端类public class Client public static void main(String args)Fruit fruit=Factory.getFruit(args0);Java的io import java.io.*;public class CharInLineOut public static void main(String args)char c=;System.out.println(请输入一个字符);try c=(char)System.in.read();catch(IOException e)System.out.println(c+c+c);查找算法冒泡算法二分算法异常63n为什么要用异常处理?为什么要用异常处理?nThrowableThrowablenErrorErrornExceptionExceptionn异常的语法异常的语法ClassNotFoundExceptionIOExceptionFileNotFoundException谢谢!
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。