Java基础知识培训.ppt

上传人:本田雅阁 文档编号:2124787 上传时间:2019-02-19 格式:PPT 页数:64 大小:2.11MB
返回 下载 相关 举报
Java基础知识培训.ppt_第1页
第1页 / 共64页
Java基础知识培训.ppt_第2页
第2页 / 共64页
Java基础知识培训.ppt_第3页
第3页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java基础知识培训.ppt》由会员分享,可在线阅读,更多相关《Java基础知识培训.ppt(64页珍藏版)》请在三一文库上搜索。

1、Java基础知识培训,目录,第1章 Java发展历史及现状 第2章 Java基本语法 第3章 面向对象,培训要点,3,第一章 Java的趣味发展史以及现状 第二章 public class 和class的声明的区别 Java的数据类型 基本数据类型 引用数据类型 数据类型的默认值 数据类型的转换 循环控制 for dowhile while if else 数组,培训要点,方法 方法的格式 方法重载 构造函数 函数重载的区分 为什么不以返回值区分重载方法 方法与数组 第三章 this 表示“调用方法的那个对象” 在构造器里调用构造器的限制 不能在一个构造器调用两个构造器 必须将构造器调用置于最

2、起始处,4,培训要点,开发的方式 面向对象 三个特征 封装 继承 多态 面向过程 类的封装性 类的图形表示 构造方法 匿名对象 字符串 Object的几个重要的方法 Object.equals Object.hashCode Object.toString,5,培训要点,static 在static方法内部不能调用非静态方法 finalize 工作原理 析构函数 设计一个简单的问题,要求用户输入用户和口令,如果用户为xiaoX,口令为123,则向控制台打印登录成功,否则打印登录失败 构造函数私有化 代码块 内部类 函数回调 继承 final关键字 抽象类 接口,6,培训要点,对象的多态性 抽象

3、类和接口的应用 适配器模式 简单工厂模式 代理模式 异常 包 持有对象 字符串,7,Java发展史,SUN:斯坦福大学网络 1991年 GREEN项目 C+ 新的平台Oak 网景公司 1995年 Oak命名为Java 1998年 Java2 Java技术的主要分支 J2SE J2ME J2EE JAVA6 2012年即将推出JAVA7,8,Java发展史,三者之间的关系,9,Java特点,面向对象 编译型语言 编译型语言和解释型语言的区别:解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一

4、次就要翻译一次,效率比较低。 Java虚拟机 指针 Java里不存在指针,因为java所有的对象,都是指针调用。 低层以C+开发 JVM 保证了一次编译,处处运行(理论上) 多厂家都有自己的 jvm,10,Java基础命令,Java -version Javac Jdb java -cp “%MON_CP%“ “%XM%“ com.sdunicomsi.monitor.agent.AgentSendInfo 源文件与字节码,public class 和class的确别,建立一个文件名Person的类 public class PersonDemo ,12,关键字、标识符、转义符,在Java语言

5、中,标识符是赋予变量、类和方法等的名称。标识符由编程者自己指定,但需要遵循一定的语法规范: (1) 标识符由字母、数字、下划线(_)、美元符号($)组成,但美元符号用得较少。 (2) 标识符从一个字母、下划线或美元符号开始。 (3) Java语言中,标识符大小写敏感,必须区别对待。 (4) 标识符没有最大长度的限制,但最好表达特定的意思。 (5) 标识符定义不能是关键字。,转义符,关键字又称保留字,是指Java语言中自带的用于标志数据类型名或者程序构造名等的标识符,如public、double等。 转义符是指一些有特殊含义的、很难用一般方式表达的字符,如回车、换行等。所有的转义符以反斜线()开

6、头,后面跟着一个字符来表示某个特定的转义符,/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=6 System.out.println(count);/count=12 int j=3; count=(+j)+(+j)+

7、(+j);/count=4+5+6 System.out.println(j);/j=6 System.out.println(count);/count=15 ,数据类型,基本数据类型 int char byte long float double 引用数据类型 New 接口 类对象 数组 String是不基本数据类型,16,数据类型的默认值,基本数据类型都有自己的默认值 private int age; /默认值为0,17,控制语句,if dowhile while for foreach (JDK1.5之后的新特性),18,foreach示例,public class ForEach p

8、ublic static void main(String args) String aa = “小刚“, “小明“, “小敏“, “小红“ ; / JDK1.4之前 for (int i = 0; i aa.length; i+) System.out.println(aai + “、“); / JDK1.5之后,包括JDK1.5 foreach (String s : aa) System.out.println(s + “、“); ,19,数组的声明,int aa=new int10; int aa=null; aa=new int10; int aa=1,10,2;,20,方法,pub

9、lic 数据类型|void 方法名(参数类表) 构造函数实际上就是一种重载 函数重载的唯一标志就是参数列表,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.a

10、dd(1); number.add(1f); ,22,可变参数(新特性),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,为什么不一返回值确定

11、一个方法,public class MethodDemo1 public void fun() System.out.println(“Hello Union!“); 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);

12、 print(temp); public static void fun(int x) x0 = 6; / 修改第一个元素 public static void print(int x) for (int i = 0; i x.length; i+) System.out.print(xi + “、“); ,25,this 关键字,调用类的属性 this.属性 调用类的方法 this.方法 调用类的构造方法 this() 表示当前对象 this,26,this 关键字,class Person String name; public String getName() return name;

13、public void setName(String name) name = name; ,27,this 关键字,28,public class Book public Book() System.out.println(“book“); public Book(int x) System.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.pr

14、intln(“book“ + y); ,this 关键字,29,public 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(x); System.out.println(“book“ + y); ,Super关键字,调用父类的属性 super.属性 调用父类的方法 super.方法 调用父类的构造方法 super() 在构造函数内,super()必须放在

15、第一行,开发方式,31,面向过程主要是解决问题,有点记叙文的味道 面向对象是一套系统的开发的模式,更能贴近现实事物一种思路,开发方式,32,面向过程主要是解决问题,有点记叙文的味道 面向对象是一套系统的开发的模式,更能贴近现实事物一种思路,特征 抽象 封装性 继承性 多态性,类和对象,33,类和对象,34,类的组成 访问类的属性和方法,类的封装性,class Person String name; int age; public class Client Person per=new Person(); per.name=“小明”; per.age=-10; 加入private,35,类的图形

16、表示,36,构造方法与匿名对象,37,构造方法必须与类名相同 构造方法没有返回值 可以有多构造方法 每个必须有构造方法 class Person 通俗的说只使用一次的对象称为匿名对象,字符串拆分,38,public 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“); St

17、ring ss = “asd|333|fff|sss|asdfsad“; 这个字符串怎么根据”|”拆分为字符串数组? ,Object.equals,39,class Person int age; public class Client Person per1=new Person(); Person per2 = per1; Per2.age=1; System.out.println(per1.equals(per2); ,Object.equals,40,class Persion private int age; public int getAge() return age; publ

18、ic void setAge(int age) this.age = age; Override public 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(); Pe

19、rsion per2 = new Persion(); per1.setAge(10); per2.setAge(10); System.out.println(per1.equals(per2); ,Object.hashCode toString,41,一般重写了基类的equals方法,也要重写hashCode方法 HashMap HashTable toString的必要性 class Person int name; public static void main(String args) System.out.println(new Person(); ,static 关键字,42,

20、类名称.static属性/方法,finalize关键字,43,工作原理:一旦垃圾回收器准备释放对象占用的存储空间,将首先调用 finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象 占用的内存。 finalize不等于析构函数 Final finally,登录示例,44,pubic class Client public static void main(String args) String name=args0; String password=args1; if(name.equals(“xiaoX”) ,构造函数私有化,45,class MessageInfo pr

21、ivate MessageInfo() public class Client public static void main(String args) MessageInfo info=new MessageInfo(); ,代码块,46,普通代码块 构造块 静态块,内部类,47,内部类就在一个类的内部又定义了一个类 class OuterClass private int name; class InnerClass public void fun() System.out.println(name); ,函数回调,48,public interface ICallBack public

22、void print(); public class Printer ICallBack ic; void setCallBack(ICallBack ic) this.ic = ic; void execute() ic.print(); ,函数回调,49,public class PrintHandler public static void main(String args) Printer printer = new Printer(); printer.setCallBack(new ICallBack() public void print() System.out.println

23、(“This is a callback“); ); / 这句话可以设置成当满足某条件时再执行 printer.execute(); ,继承,50,继承就是扩展已有类的功能,父类称为“超类”,子类称为“派生类” 继承的限制 子类的实例化过程 方法的覆写,final关键字,51,声明类 final class A 声明方法 public final void fun() 声明属性 public final String s=“Hello Union!”,抽象类abstract,52,abstract class A public abstract void fun(); class Client

24、 public static void main(String args) A a=null; a=new A(); (cuowu) 抽象类是否能用final关键字来修饰 不能 抽象类是否可以有构造函数 必须有 接口 不可以有构造方法 不能有方法体,接口,53,接口是一种特殊的类,在接口中定义的方法全部都是抽象方法,定义的属性全部都是全局常量 一个类可以实现多个接口 只有一个父类 一个接口可以继承多个接口,多态性,54,向上转型:子类引用调用父类对象. 向下转型: 父类引用指向子类对象,可以调用子类的特有方法 父类设计很重要,抽象类和接口的应用,55,适配器模式 interface Manag

25、eObject public void fun1(); public void fun2(); public void fun3(); 但是我又不想实现ManageObject接口的所有方法,只有一部分方法是我需要的,怎么办?,抽象类和接口的应用,56,简单工厂模式 interface Fruit void eat(); class Orange implements Fruit public void eat() System.out.pritnln(“吃桔子”); class Client public static void main(String args) Fruit fruit=n

26、ew Orange (); fruit.eat(); 如果,抽象类和接口的应用,57,简单工厂模式 interface Fruit void eat(); class Orange implements Fruit public void eat() System.out.pritnln(“吃桔子”); class Client public static void main(String args) Fruit fruit=new Orange (); fruit.eat(); 如果现在又多了一个水果为Apple,客户端现在不吃桔子了,改吃苹果,那只能修改 Fruit fruit=new A

27、pple (); 这样设计的缺陷是什么?,抽象类和接口的应用,58,代理模式 如果A类要去执行一个方法,但是A类不直接去执行,而是委托B类去执行,这个方法,那为什么这么做? interface Z void doIt(); class A implements Z public void doIt() System.out.println(); class B implements Z private A a=null; public B(A a) this.a=a; public void doIt() a.doIt(); ,抽象类和接口的应用,59,工厂模式 接口类Fruit.java p

28、ublic 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 Banana(); else if (“Orange“.equals(fruitName) fruit = new Orange(

29、); 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); ,查找算法,冒泡算法 二分算法,异常,63,为什么要用异常处理? Throwable Error Exception 异常的语法 ClassNotFoundException IOException FileNotFoundException,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1