主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

面向对象与设计模式 RD 常见编程范式介绍  并行编程 - Process-orientedProcess-oriented  组件编程 - Component-basedComponent-based  事件驱动 - Service-oriented,Time-drivenService-orientedTime-driven.
单元二:面向对象程序设计 任务二:借书卡程序设计.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
第4章 类与对象 本章导读 0. 面向对象编程 1. 类声明和类体 2. 类体的构成 3. 构造方法与对象的创建 4. 对象的引用与实体
算法设计与分析 Algorithm Design and Analysis
第五章 字符串.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
第5章 进一步讨论对象和类.
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
第二章 C# 基础知识.
第四章 在 C# 中实现 OOP 概念.
常用工具类.
Java基础 JavaSE异常.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
第六章 类的扩展与继承.
本單元介紹何謂變數,及說明變數的宣告方式。
2018/11/27 Java语言程序设计-程序流程 教师:段鹏飞.
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
抽象类 File类 String类 StringBuffer类
CH09 套件 物件導向程式設計(II).
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
Java程序设计 第9章 继承和多态.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
第一章 Java语言概述.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第三章 C# 基础知识.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
Java變數 2014/6/24.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
第二章 类型、对象、运算符和表达式.
Review 1~3.
第二章 Java基本语法 讲师:复凡.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
第4章 数组与字符串 学习目标 本章要点 上机练习 习 题.
本节内容 指针类型.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
變數、資料型態、運算子.
第2章 Java语言基础.
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone ) 对象的克隆( clone ) 数组的相关操作 数组的相关操作 封装类 封装类 Runtime 类与 Process 类 Runtime 类与 Process 类 Class 类 Class 类 设计模式 设计模式

Java 的常用包 java.applet :包含一些用于创建 Java 小应用程序的类。 java.applet :包含一些用于创建 Java 小应用程序的类。 java.awt :包含一些用于编写与平台无关的图形界面 (GUI) 应用程序的类。 java.awt :包含一些用于编写与平台无关的图形界面 (GUI) 应用程序的类。 java.io :包含一些用作输入输出 (I/O) 处理的类。 java.io :包含一些用作输入输出 (I/O) 处理的类。 java.lang :包含一些 Java 语言的基本类与核心类,如 String 、 Math 、 Integer 、 System 和 Runtime ,提供常用的功能,这个 包中的所有类是被隐式导入的。 java.lang :包含一些 Java 语言的基本类与核心类,如 String 、 Math 、 Integer 、 System 和 Runtime ,提供常用的功能,这个 包中的所有类是被隐式导入的。 java.net :包含用于建立网络连接的类,与 java.io 同时使用 完成与网络有关的读写。 java.net :包含用于建立网络连接的类,与 java.io 同时使用 完成与网络有关的读写。 java.util :包含一些实用工具类和数据结构类。 java.util :包含一些实用工具类和数据结构类。

“ == ” 和 “ equals ” 的用法 在 Java 中, boolean 、 byte 、 short 、 int 、 long 、 char 、 float 、 double 这八种是基本数据类型, 其余的都是引用类型。 在 Java 中, boolean 、 byte 、 short 、 int 、 long 、 char 、 float 、 double 这八种是基本数据类型, 其余的都是引用类型。 “ == ” 是比较两个变量的值是否相等, “ equals ” 是比较两个对象变量所代表的对象的内容 是否相等。 “ == ” 是比较两个变量的值是否相等, “ equals ” 是比较两个对象变量所代表的对象的内容 是否相等。

对象的内存分配图 栈内存 堆内存 str1 str2 a b c a b c 0088: :4660 str1 标识的对象 str2 标识的对象 当我们声明一个引用类型变量时,系统只为该变量分配了引用空间,并未创建 当我们声明一个引用类型变量时,系统只为该变量分配了引用空间,并未创建 一个具体的对象;当用 new 为对象分配空间后,将对象的引用赋值给引用变量。

String str= “ abc ” ; String str= “ abc ” ; int i=3; int i=3; float f=4.5f; float f=4.5f; char ch='a'; char ch='a'; boolean b=true; boolean b=true; System.out.println(str + i + f + ch + b); System.out.println(str + i + f + ch + b); 针对 String 的 “ + ” 和 “ += ” ,是 Java 中唯一被重载的操 作符;在 Java 中,不允许程序员重载操作符。 针对 String 的 “ + ” 和 “ += ” ,是 Java 中唯一被重载的操 作符;在 Java 中,不允许程序员重载操作符。 String 和 StringBuffer

String 类对象一个常量对象。 String 类对象一个常量对象。 String str= “ abc ” ; String str= “ abc ” ; str= “ def ” ; str= “ def ” ; 在处理大量字符串的程序中,我们通常用 StringBuffer 来替代 String 。 在处理大量字符串的程序中,我们通常用 StringBuffer 来替代 String 。

数组的内存分配图 基本数据类型一维数组内存分配 基本数据类型一维数组内存分配 栈内存堆内存 num c :4400 new int[3] 产 生的对象

数组的内存分配图 基本数据类型一维数组内存分配 基本数据类型一维数组内存分配 栈内存堆内存 num c null 0088:4400 new int[3] 产 生的对象 num=null;

对象数组的内存分配 栈内存 堆内存 studentsnull  Student[] students; 

对象数组的内存分配 堆内存 students c 0088:4400 new students[3] 产生的对象 null  Student[] students;  students=new Student[3];   null 栈内存

对象数组的内存分配 堆内存 students c 0088:4400 new students[3] 产生的对象 null  Student[] students;  students=new Student[3];  students[0]=new Student( “ lisi ”,18);   student[0] 标识的 Student 对象 lisi :4660  栈内存

函数的调用 在 Java 中,传参时,都是以传值的方式进行。 在 Java 中,传参时,都是以传值的方式进行。 对于基本数据类型,传递的是数据的拷贝; 对于引用类型,传递的引用的拷贝。 对于基本数据类型,传递的是数据的拷贝; 对于引用类型,传递的引用的拷贝。

函数的调用 xmain change … 栈内存 y 4(3) 3(4) 4 3 class StringTest { public static void change(int x,int y) { x=x+y; y=x-y; x=x-y; } public static void main(String[] args) { int x=3; int y=4; change(x,y); System.out.println("x="+x); System.out.println("y="+y); } x y

函数的调用 ptmain change … 栈内存 堆内存 Point 类的对象 pt … … 0088:4660 class StringTest { public static void change(Point pt) { pt.x=pt.x+pt.y; pt.y=pt.x-pt.y; pt.x=pt.x-pt.y; } public static void main(String[] args) { Point pt=new Point(); pt.x=3; pt.y=4; change(pt); System.out.println("x="+pt.x); System.out.println("y="+pt.y); } class Point{ int x, y;}

对象的克隆 (clone) 为了获取对象的一份拷贝,我们可以利用 Object 类的 clone() 方法。 为了获取对象的一份拷贝,我们可以利用 Object 类的 clone() 方法。 在派生类中覆盖基类的 clone() 方法,并声明 为 public 。 在派生类中覆盖基类的 clone() 方法,并声明 为 public 。 在派生类的 clone() 方法中,调用 super.clone() 。 在派生类的 clone() 方法中,调用 super.clone() 。 在派生类中实现 Cloneable 接口。 在派生类中实现 Cloneable 接口。

对象的克隆 (clone) 为什么我们在派生类中覆盖 Object 的 clone() 方法时,一定要调用 super.clone() 呢?在运 行时刻, Object 中的 clone() 识别出你要复制 的是哪一个对象,然后为此对象分配空间, 并进行对象的复制,将原始对象的内容一 一复制到新对象的存储空间中。 为什么我们在派生类中覆盖 Object 的 clone() 方法时,一定要调用 super.clone() 呢?在运 行时刻, Object 中的 clone() 识别出你要复制 的是哪一个对象,然后为此对象分配空间, 并进行对象的复制,将原始对象的内容一 一复制到新对象的存储空间中。

数组的相关操作 在 Java 中,所有的数组都有一个缺省的属性 length ,用于获取数组中元素的个数。 在 Java 中,所有的数组都有一个缺省的属性 length ,用于获取数组中元素的个数。 数组的复制: System.arraycopy() 。 数组的复制: System.arraycopy() 。 数组的排序: Arrays.sort() 。 数组的排序: Arrays.sort() 。 在已排序的数组中查找某个元素: Arrays.binarySearch() 。 在已排序的数组中查找某个元素: Arrays.binarySearch() 。

封装类 针对八种基本数据类型定义的相应的引用类型-封装类。 针对八种基本数据类型定义的相应的引用类型-封装类。 基本数据类型封装类 booleanBoolean byteByte shortShort intInteger longLong charCharacter floatFloat doubleDouble

Class 类 在 Java 中,每个 class 都有一个相应的 Class 对象。也就是说, 当我们编写一个类,编译完成后,在生成的.class 文件中, 就会产生一个 Class 对象,用于表示这个类的类型信息。 在 Java 中,每个 class 都有一个相应的 Class 对象。也就是说, 当我们编写一个类,编译完成后,在生成的.class 文件中, 就会产生一个 Class 对象,用于表示这个类的类型信息。 获取 Class 实例的三种方式: 获取 Class 实例的三种方式: ( 1 )利用对象调用 getClass() 方法获取该对象的 Class 实例; ( 2 )使用 Class 类的静态方法 forName() ,用类的名字获取 一个 Class 实例; ( 3 )运用.class 的方式来获取 Class 实例,对于基本数据类 型的封装类,还可以采用.TYPE 来获取相对应的基本数据 类型的 Class 实例。

Class 类 在运行期间,如果我们要产生某个类的对 象, Java 虚拟机 (JVM) 会检查该类型的 Class 对象是否已被加载。如果没有被加载, JVM 会根据类的名称找到.class 文件并加载它。 一旦某个类型的 Class 对象已被加载到内存, 就可以用它来产生该类型的所有对象。 在运行期间,如果我们要产生某个类的对 象, Java 虚拟机 (JVM) 会检查该类型的 Class 对象是否已被加载。如果没有被加载, JVM 会根据类的名称找到.class 文件并加载它。 一旦某个类型的 Class 对象已被加载到内存, 就可以用它来产生该类型的所有对象。 newInstance() 调用类中缺省的构造方法。 newInstance() 调用类中缺省的构造方法。

Runtime 类和 Process 类 每一个 Java 程序都有一个 Runtime 类的单一实 例。 每一个 Java 程序都有一个 Runtime 类的单一实 例。 通过 Runtime.getRuntime() 获取 Runtime 类的 实例。 通过 Runtime.getRuntime() 获取 Runtime 类的 实例。 Runtime 类是使用单例模式的一个例子。 Runtime 类是使用单例模式的一个例子。

设计模式 在我们进行程序设计时,逐渐形成了一些 典型问题和问题的解决方案,这就是软件 模式。 在我们进行程序设计时,逐渐形成了一些 典型问题和问题的解决方案,这就是软件 模式。 每一个模式描述了一个在我们程序设计中 经常发生的问题,以及该问题的解决方案。 每一个模式描述了一个在我们程序设计中 经常发生的问题,以及该问题的解决方案。 当我们碰到模式所描述的问题,就可以直 接用相应的解决方法去解决这个问题,这 就是设计模式。 当我们碰到模式所描述的问题,就可以直 接用相应的解决方法去解决这个问题,这 就是设计模式。

设计模式 单例( Singleton )模式 单例( Singleton )模式 ( 1 )一个类只有一个实例,而且自行实例 化并向整个系统提供这个实例,这个类称 为单例类。 ( 1 )一个类只有一个实例,而且自行实例 化并向整个系统提供这个实例,这个类称 为单例类。 ( 2 )单例类的一个最重要的特点是类的构 造方法是私有的,从而避免了外部利用构 造方法直接创建多个实例。 ( 2 )单例类的一个最重要的特点是类的构 造方法是私有的,从而避免了外部利用构 造方法直接创建多个实例。

单例类的实现 class Singleton { private static final Singleton st=new Singleton(); private Singleton(){} public static Singleton getInstance() { return st; }